Spisu treści:
- Krok 1: Układ obwodu
- Krok 2: Kod Arduino
- Krok 3: Kod Matlab (plik HallRT)
- Krok 4: Kod Matlaba (thresh_analyze)
- Krok 5: Próba 1: Bez aliasingu
- Krok 6: Próba 2: Aliasing czujnika (i)
- Krok 7: Próba 3: Aliasing czujnika (ii)
- Krok 8: Próba 4: Aliasing czujnika (iii)
Wideo: Instruktaż częstotliwości próbkowania/aliasingu: 8 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:34
Chcę stworzyć projekt edukacyjny, który demonstruje aliasowanie (i przykładowe stawki) i jest przeznaczony do umieszczenia na stronie internetowej jako źródła informacji dla uczniów, którzy uczą się aliasowania.
Krok 1: Układ obwodu
Arduino
Arduino jest podstawą układu; obsługa serwomotoru (z zamontowanym kołem enkoderowym) i pozycjonowanego czujnika Halla.
- Koło enkodera: Koło enkodera ma na celu zawieszenie magnesu, który obraca się po torze kołowym, unosząc się nad umieszczonym czujnikiem Halla.
-Konfiguracja czujnika: czujnik z efektem Halla jest umieszczony poniżej ścieżki obrotu magnesu, jego celem jest śledzenie przejścia magnesu przy różnych prędkościach obrotowych i szybkości zbierania danych.
---------------------------------------------------------------------------------------------------------
Podetapy:
-
Zdobądź materiały:
Arduino (+ płytka chlebowa), przewody, koło enkodera, magnes, czujnik halla, serwomotor, aplikacja Matlab, aplikacja Arduino
- Wytnij koło enkodera, zamontuj na serwo, wciśnij magnes w szczelinę.
- Przymocuj czujnik efektu Halla pod ścieżką magnesu (może być wymagane przedłużenie przewodu czujnika).
- Zbuduj obwód.
Krok 2: Kod Arduino
Metoda zbierania danych
Kod Arduino używa [Linia 41] do zbierania informacji przez port A0 „Analog In” z czujnika efektu Halla
Sposób szeregowej transmisji danych
- [Wiersz 43] Wyświetla na monitorze szeregowym zmienną 'timer', która implementuje funkcję 'millis()', aby utrzymać uruchomiony zegar w milisekundach przez cały czas trwania programu.
- [Wiersz 45] Wyświetla na monitorze szeregowym zmienną 'hallsensor', która implementuje 'analogRead' w celu uzyskania informacji z czujnika efektu Halla podczas działania programu.
Cel parametru delay()
Celem parametru delay() jest zmiana czasu odpowiedzi zbierania danych, które są odbierane z czujnika efektu Halla
---------------------------------------------------------------------------------------------------------
Podetapy:
Wprowadź kod Arduino w aplikacji Arduino
Krok 3: Kod Matlab (plik HallRT)
- Sposób odbioru danych - [Rysunek 3: Linia 77]
Uzyskiwanie danych z ArduinoStep
---------------------------------------------------------------------------------------------------------
Podetapy:
Kod wejściowy Matlaba znajduje się powyżej liczb, zapisz w pliku HallRT
Krok 4: Kod Matlaba (thresh_analyze)
Metoda liczenia pików [Rysunek 2: Linie 45-53]
- Użycie flagi w tym kodzie Matlaba jest takie, że gdy pętla for natknie się na wartość „aRval”, która jest większa niż wstępnie ustawiona liczba wartości „thresh”, wzrośnie o jeden, szczyt zostanie oznaczony gwiazdkami, a if-statement [Linia 45-50] ulegnie uszkodzeniu, ponieważ flag = 1. Drugi if-statement z flagą [Linia 51-53] wskazuje, że po osiągnięciu szczytu i wartościach wokół szczytu zaczną spadać, flaga = 0, a pętla for kontynuuje wyszukiwanie większej liczby pików.
-
Parametry/Niezbędne wartości:
- 'aRval': zebrane dane z przebiegu próbnego.
- 'thresh': wybrana wartość wskazująca cokolwiek powyżej tej wartości w aRval jako szczyt.
---------------------------------------------------------------------------------------------------------
Podetapy:
Utwórz drugi plik Matlaba „thresh_analyze”
Krok 5: Próba 1: Bez aliasingu
Rysunek 1: Próba danych @ opóźnienie 200 Rysunek 2: Dane analizowane przez Thresha
-Parametr opóźnienia: 200
Szczyty:
Liczba = 45
-Liczba obrotów na minutę:
45 obrotów/minutę
---------------------------------------------------------------------------------------------------------
Podetapy:
-
Podłącz Arduino do laptopa.
Ustaw opóźnienie w kodzie Arduino na „200”. Naciśnij Prześlij (w lewym górnym rogu aplikacji)
- Przejdź do swojego pliku Matlab HallRT [Linia 37] i zmień zmienną 'delayTime' na 200.
- Uruchom program HallRT.
- Zapisz plik Matlab pod "delay_200". (Zapisz rysunek)
- Załaduj plik delay_200.mat.
- Uruchom program thresh_analyze. (Zapisz rysunek)
Krok 6: Próba 2: Aliasing czujnika (i)
Rysunek 1: Próba danych przy opóźnieniu 50
Rysunek 2: Dane przeanalizowane przez Thresha
Parametr opóźnienia: 50-Peaks:
Liczba = 52
Liczba obrotów na minutę:
52 obroty/minutę
---------------------------------------------------------------------------------------------------------
Podetapy:
-
Podłącz Arduino do laptopa.
Ustaw opóźnienie w kodzie Arduino na „50”. Naciśnij Prześlij (w lewym górnym rogu aplikacji)
- Przejdź do swojego pliku Matlab HallRT [Linia 37] i zmień zmienną 'delayTime' na 50.
- Uruchom program HallRT.
- Zapisz plik Matlab pod "delay_50". (Zapisz rysunek)
- Załaduj plik delay_50.mat.
- Uruchom program thresh_analyze. (Zapisz rysunek)
Krok 7: Próba 3: Aliasing czujnika (ii)
Rysunek 1: Próba danych @ Opóźnienie 100 Rysunek 2: Dane analizowane przez Thresha
Parametr opóźnienia: 100-Peaks:
Liczba = 54
Liczba obrotów na minutę:
54 obroty/minutę
------------------------------------------------ -------------------------------------------------- -------Podkroki:
-
Podłącz Arduino do laptopa.
Ustaw opóźnienie w kodzie Arduino na „100”. Naciśnij Prześlij (w lewym górnym rogu aplikacji).'
- Przejdź do swojego pliku Matlab HallRT [Linia 37] i zmień zmienną 'delayTime' na 100.
- Uruchom program HallRT.
- Zapisz plik Matlab pod "delay_100". (Zapisz rysunek)
- Załaduj plik delay_100.mat.
- Uruchom program thresh_analyze. (Zapisz rysunek)
Krok 8: Próba 4: Aliasing czujnika (iii)
Rysunek 1: Próba danych @ opóźnienie 300 Rysunek 2: Dane zanalizowane przez Thresha
-Parametr opóźnienia: 300
Szczyty:
Liczba = 32
Liczba obrotów na minutę:
32 obroty/minutę
-------------------------------------------------- -------------------------------------------------- -------Podkroki:
-
Podłącz Arduino do laptopa.
Ustaw opóźnienie w kodzie Arduino na „300”. Naciśnij Prześlij (w lewym górnym rogu aplikacji)
- Przejdź do swojego pliku Matlab HallRT [Linia 37] i zmień zmienną 'delayTime' na 300.
- Uruchom program HallRT.
- Zapisz plik Matlab pod "delay_300". (Zapisz rysunek)
- Załaduj plik delay_300.mat.
- Uruchom program thresh_analyze. (Zapisz rysunek)
Zalecana:
Licznik częstotliwości o wysokiej rozdzielczości: 5 kroków (ze zdjęciami)
Licznik częstotliwości o wysokiej rozdzielczości: Ta instrukcja pokazuje licznik częstotliwości odwrotności zdolny do szybkiego i rozsądnego pomiaru częstotliwości. Wykonany jest ze standardowych komponentów i można go zrobić w weekend (zajęło mi to trochę więcej czasu :-)) EDIT: Kod jest już dostępny
Licznik częstotliwości z Arduino: 8 kroków (ze zdjęciami)
Licznik częstotliwości z Arduino: Jest to prosty i tani licznik częstotliwości oparty na arduino, który kosztuje mniej niż 4 $, bardzo przydatne było mierzenie małych obwodów
Samouczek próbkowania sygnału analogowego - MATLAB: 8 kroków
Samouczek próbkowania sygnału analogowego | MATLAB: W tym samouczku pokazujemy, czym jest próbkowanie? oraz Jak próbkować sygnał analogowy za pomocą oprogramowania MATLAB
Jak zrobić wizualizator dźwięku częstotliwości dla kostiumu (Projekt Arduino): 8 kroków (ze zdjęciami)
Jak zrobić wizualizator dźwięku częstotliwości dla kostiumu (Projekt Arduino): W tym Instuctable przedstawię wskazówki, plany i kody, aby stworzyć ekscytujący wizualizator dźwięku wbudowany w kombinezon z pianki z włókna szklanego. Po drodze podzielę się pomocnymi krokami i dodatkowymi kodami, które niektórzy chcą zaimplementować biblioteki arduino FFT do
Motoryzacyjna elektroniczna modyfikacja częstotliwości migania.: 6 kroków (ze zdjęciami)
Automotive Electronic Flasher Rate Modification.: Dla każdego, kto dodał żarówki LED do swoich pojazdów, kierunkowskazy lub światła hamowania. Ponieważ żarówki LED zużywają mniej amperów niż zwykłe żarówki, migacz myśli, że żarówka jest wypalona i podwaja szybkość błysku. Ta instrukcja pokaże ci, jak