Spisu treści:
Wideo: Arduino Soundlab: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
To niesamowite, jak szeroką gamę niesamowitych dźwięków można wygenerować za pomocą techniki syntezy FM, nawet przy użyciu zwykłego Arduino. W poprzedniej instrukcji było to zilustrowane syntezatorem, który miał 12 zaprogramowanych dźwięków, ale widz zasugerował, że znacznie fajniej byłoby mieć pełną kontrolę nad parametrami dźwięku za pomocą potencjometrów i tak jest!
W tym laboratorium dźwiękowym, tony mogą być kontrolowane przez 8 parametrów: 4 dla obwiedni ADSR głośności i 4 dla modulacji częstotliwości, która określa teksturę.
Dodanie 8 potencjometrów nie szło kosztem ilości klawiszy: trzy zestawy po 8 klawiszy są odczytywane w ciągu kilku mikrosekund jeden po drugim, co daje w sumie 24 klawisze, co odpowiada dwóm pełnym oktawom. W rzeczywistości dwa piny Arduino są nieużywane i możliwe byłoby rozszerzenie do 40 klawiszy.
Obejrzyj wideo, aby dowiedzieć się, jak tworzyć dzikie dźwięki, oto krótki przegląd:
* A=atak: czas na osiągnięcie przez ton maksymalnej głośności (zakres 8ms-2s)
* D=decay: czas, po którym dźwięk opada do stałego poziomu głośności (zakres 8ms-2s)
* S=sustain: stały poziom głośności (zakres 0-100%)
* R=release: czas wygaśnięcia tonu (zakres 8ms-2s)
* f_m: stosunek częstotliwości modulacji do częstotliwości nośnej (zakres 0,06-16) wartości poniżej 1 dają półtony, wyższe wartości alikwoty
* beta1: amplituda modulacji FM na początku nuty (zakres 0,06-16) małe wartości powodują niewielkie zmiany tekstury dźwięku. duże wartości powodują zwariowane dźwięki
* beta2: amplituda modulacji FM na końcu nuty (zakres 0,06-16) Daj beta2 inną wartość niż beta1, aby tekstura dźwięku ewoluowała w czasie.
* tau: prędkość, z jaką amplituda FM ewoluuje od beta1 do beta 2 (zakres 8ms-2s) Małe wartości dają krótki huk na początku nuty, duże wartości to długa i powolna ewolucja.
Krok 1: Budowa
Oczywiście, to wciąż prototyp, mam nadzieję, że pewnego dnia ja lub ktoś inny zbuduję to duże, mocne i piękne z dużymi klawiszami i prawdziwymi tarczami dla potencjometrów w niesamowitej obudowie….
Potrzebne komponenty:
1 Arduino Nano (nie będzie działać z Uno, który ma tylko 6 wejść analogowych)
24 przyciski
8 potencjometrów w zakresie 1kOhm - 100kOhm
1 potencjometr 10kOhm do regulacji głośności
1 kondensator - elektrolityczny 10 mikrofaradów
1 gniazdo słuchawkowe 3,5 mm
1 układ wzmacniacza audio LM386;
2 kondensatory elektrolityczne 1000 mikrofaradów
1 kondensator ceramiczny 1 mikrofarad
1 mikroprzełącznik
1 głośnik 8Ohm 2Watt
1 płyta prototypowa 10x15 cm
Upewnij się, że rozumiesz załączone schematy. 24 przyciski są połączone w 3 grupach po 8, które są odczytywane w D0-D7 i aktywowane w D8, D10 i D11. Potencjometry mają +5V i masę na odczepach końcowych, a odczepy środkowe wyprowadzone są na wejścia analogowe A0-A7. D9 ma wyjście audio i jest sprzężony z prądem zmiennym do potencjometru 10 kOhm do regulacji głośności. Dźwięku można słuchać bezpośrednio za pomocą słuchawek lub wzmocnić układem wzmacniacza audio LM386.
Wszystko mieści się na prototypowej planszy 10x15 cm, ale przyciski są zbyt blisko, aby dobrze grać, więc lepiej byłoby zbudować większą klawiaturę.
Obwód może być zasilany przez złącze USB w Arduino Nano lub z zewnętrznego zasilacza 5V. Skrzynka na baterie 2xAA wraz z konwerterem step-up to idealne rozwiązanie do zasilania.
Krok 2: Oprogramowanie
Prześlij załączony szkic do Arduino Nano i wszystko powinno działać.
Kod jest prosty i łatwy do modyfikacji, nie ma kodu maszynowego ani przerwań, ale jest kilka bezpośrednich interakcji z rejestrami, aby współdziałać z zegarem, przyspieszyć odczyt przycisków i kontrolować zachowanie ADC do odczytu potencjometru
Krok 3: Przyszłe ulepszenia
Pomysły społeczności są zawsze mile widziane!
Najbardziej przeszkadzają mi przyciski: są malutkie i mocno klikają po naciśnięciu. Naprawdę fajnie byłoby mieć większe przyciski, które wygodniej jest naciskać. Ponadto przyciski czułe na siłę lub prędkość pozwoliłyby kontrolować głośność nut. Może zadziałałyby przyciski 3-kierunkowe lub przyciski dotykowe?
Innymi fajnymi rzeczami byłoby przechowywanie ustawień dźwięku w EEPROM-ie. Przechowywanie krótkich utworów w EEPROM-ie pozwoliłoby również na tworzenie znacznie ciekawszej muzyki. Wreszcie, można by generować bardziej złożone dźwięki, jeśli ktoś wie, jak generować dźwięki perkusji w wydajny obliczeniowo sposób, to byłoby niesamowite…
Zalecana:
Pierwsze kroki z Digispark Attiny85 przy użyciu Arduino IDE: 4 kroki
Rozpoczęcie pracy z Digispark Attiny85 przy użyciu Arduino IDE: Digispark to oparta na Attiny85 płytka rozwojowa mikrokontrolera podobna do linii Arduino, tylko tańsza, mniejsza i nieco mniej wydajna. Z całą gamą osłon rozszerzających jego funkcjonalność i możliwością korzystania ze znanego identyfikatora Arduino
Pierwsze kroki z ESP32 - Instalowanie płytek ESP32 w Arduino IDE - Kod migania ESP32: 3 kroki
Pierwsze kroki z ESP32 | Instalowanie płytek ESP32 w Arduino IDE | ESP32 Blink Code: W tej instrukcji zobaczymy, jak rozpocząć pracę z esp32 i jak zainstalować płyty esp32 w Arduino IDE, a także zaprogramujemy esp 32 do uruchamiania kodu błyskowego za pomocą arduino ide
Pierwsze kroki z Stm32 przy użyciu Arduino IDE: 3 kroki
Pierwsze kroki z Stm32 przy użyciu Arduino IDE: STM32 to dość potężna i popularna płyta obsługiwana przez Arduino IDE. Aby z niej skorzystać, musisz zainstalować płyty dla stm32 w Arduino IDE, więc w tej instrukcji opowiem, jak zainstalować płyty stm32 i jak zaprogramować to
Pierwsze kroki z Esp 8266 Esp-01 z Arduino IDE - Instalowanie płytek Esp w Arduino Ide i programowanie Esp: 4 kroki
Pierwsze kroki z Esp 8266 Esp-01 z Arduino IDE | Instalowanie płyt Esp w Arduino Ide i programowanie Esp: W tej instrukcji dowiemy się, jak zainstalować płyty esp8266 w Arduino IDE oraz jak zaprogramować esp-01 i przesłać w nim kod. Ponieważ płyty esp są tak popularne, pomyślałem o naprawieniu instrukcji dla to i większość ludzi boryka się z problemem
Pierwsze kroki z Arduino: Co musisz wiedzieć: 4 kroki (ze zdjęciami)
Pierwsze kroki z Arduino: Co musisz wiedzieć: Pracuję z Arduino i elektroniką od wielu lat i wciąż się uczę. W tym stale rozwijającym się świecie mikrokontrolerów łatwo się zgubić i krążyć wokół siebie, próbując znaleźć informacje. W tej instrukcji