
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

Chciałem zrobić pianino, które może grać automatycznie, natychmiast słuchając mojej muzyki. Więc spróbowałem z arduino uno, które leżałem. Mogłoby być znacznie lepiej z arduino zero przy użyciu prostej biblioteki mierników częstotliwości ii go nie miałem w tej chwili i kontynuowałem z uno.
Krok 1: Teoria
Na pianinie gra się, dopasowując częstotliwość wokalisty do fortepianu. Dlatego musimy próbkować częstotliwość wokalisty i odtwarzać ją w czasie rzeczywistym. Używam dzielnika napięcia z trympotu, ponieważ dźwięk jest zasilany prądem zmiennym, a arduino nie może radzić sobie z ujemnymi napięciami, dlatego jako odniesienie użyj napięcia dostarczanego przez dzielnik napięcia i ustaw go na 2,5V. Wejście jest dostarczane na pinie A0 arduino. Następnie zaprogramowałem arduino, aby sprawdzić, kiedy napięcie jest na poziomie odniesienia, który zmierzyłem i nazwałem je początkowym, a następnie zmierzyłem odstęp czasu między kolejnymi napięciami odniesienia, a następnie obliczyłem częstotliwość. zmienna służy do przechowywania chwilowej amplitudy sygnału audio w celu wyeliminowania szumu o amplitudzie mniejszej niż 15 wartości ADC lub 0,0733 V. Częstotliwość jest ograniczona, aby ekstremalne wartości nie przerywały utworu.
Krok 2: Wymagany materiał



1) Arduino Uno lub odpowiednik
2) Pasywny brzęczyk piezoelektryczny lub głośnik z obwodem wzmacniacza;
3) Potencjometr o wysokiej rezystancji (upewnij się, że prąd przepływający przez niego przy 5 V powinien być mały w kilku miliamperach)
4) przewody połączeniowe
5)płyta chlebowa
6) gniazdo audio 3,5 mm lub mikrofon z obwodem wzmacniacza (użyłem telefonu komórkowego jako wzmacniacza, ponieważ uważałem, że jestem zbyt leniwy, aby go zbudować)
7) Telefon z Androidem (Aby odtwarzać dźwięk)
8) kabel arduino (aby go zaprogramować)
Krok 3: Połączenia


1) Zamontuj trimpot na płytce chlebowej i podaj uziemienie i +5 V z arduino za pomocą przewodów połączeniowych.
2) Podłącz uziemienie gniazda 3,5 mm do trzeciego pinu trimpot, aby działał jako konfiguracja dzielnika napięcia i kanał do pinu A0 arduino.
3) Podłącz masę brzęczyka do masy arduino i sygnał do styku 13 arduino.
Krok 4: Kod Arduino

Oto kompletny kod
Zakomentowałem niektóre stwierdzenia dotyczące druku seryjnego używanego do testów
uint64_t curtime=0, ltime=0;uint32_t freq=0; uint16_t inicjał, val, del=0; bool ostatni, bieżący; void setup() { // umieść tutaj swój kod konfiguracji, aby uruchomić raz: delay(1000); /*Serial.begin(115200); opóźnienie (1000); Serial.println("system uruchomiony");*/ Initial = analogRead(A0); if(analogowyOdczyt(A0)
void loop() { // umieść tutaj swój główny kod, aby uruchamiał się wielokrotnie: val=analogRead(A0); if(val>=początkowe)curr=1; w przeciwnym razie bież=0; del=(int)val-(int)początkowe; if(last==0 && curr==1){ curtime=mikros(); częst=1000000/(2*(czas-czas-czasu)); /*Serial.print(freq, DEC); Serial.print("w dół"); Serial.println(del);*/ if(freq>50&&freq15)tone(13, freq, 500); opóźnienie (100); ltime=mikro(); ostatnia=1; }
Krok 5: Zasil to!

Podłącz telefon, aby posłuchać muzyki, a jeśli chcesz śpiewać, możesz użyć wszystkich aplikacji narzędziowych, które można pobrać ze sklepu Play. Oto link
play.google.com/store/apps/details?id=com.pradhyu.alltoolseveryutility&hl=pl
Po pobraniu otwórz opcję mikrofonu i śpiewaj!
Oto jak to działa!
Zalecana:
Zautomatyzowane EKG-BME 305 Projekt końcowy Dodatkowy kredyt: 7 kroków

Zautomatyzowane EKG-BME 305 Final Project Extra Credit: Elektrokardiogram (EKG lub EKG) służy do pomiaru sygnałów elektrycznych wytwarzanych przez bijące serce i odgrywa dużą rolę w diagnozowaniu i prognozowaniu chorób sercowo-naczyniowych. Niektóre informacje uzyskane z EKG obejmują rytm
Zautomatyzowane EKG: symulacje amplifikacji i filtrowania przy użyciu LTspice: 5 kroków

Zautomatyzowane EKG: Symulacje wzmacniania i filtrowania przy użyciu LTspice: To jest obraz końcowego urządzenia, które będziesz budować i bardzo dogłębna dyskusja na temat każdej części. Opisuje również obliczenia dla każdego etapu.Obraz przedstawia schemat blokowy dla tego urządzeniaMetody i materiały: Cel tego pr
VentMan Część II: Zautomatyzowane wykrywanie pieca Arduino dla wentylatorów wspomagających: 6 kroków

VentMan Część II: Zautomatyzowane wykrywanie pieca Arduino dla wentylatorów wspomagających: Główne punkty: To był tymczasowy hack wprowadzony w celu wykrycia, kiedy mój silnik dmuchawy AC / pieca działał, aby moje dwa wentylatory wspomagające mogły się włączyć. Potrzebuję dwóch wentylatorów wspomagających w moich kanałach, aby wtłoczyć więcej ciepłego/chłodnego powietrza do dwóch oddzielnych sypialni. Ale ja
Łatwe zautomatyzowane EKG (1 wzmacniacz, 2 filtry): 7 kroków

Łatwe zautomatyzowane EKG (1 wzmacniacz, 2 filtry): elektrokardiogram (EKG) mierzy i wyświetla aktywność elektryczną serca za pomocą różnych elektrod umieszczonych na skórze. EKG można utworzyć za pomocą wzmacniacza oprzyrządowania, filtra wycinającego i filtra dolnoprzepustowego. Wreszcie filtrowane i
Zautomatyzowane ramię robota do lutowania: 7 kroków (ze zdjęciami)

Zautomatyzowane ramię robota do lutowania: Ta instrukcja pokazuje, jak lutować części elektroniczne na płytce drukowanej za pomocą ramienia robota Pomysł na ten projekt przyszedł mi do głowy przypadkowo, gdy szukałem różnych możliwości ramion robotów, a potem odkryłem, że jest kilku, którzy obejmuje