Syntezator z ESP32

Typ_projektu
microPython
Zdjecie główne
Krótki opis projektu

Projekt prezentuje budowę instrumentu muzycznego na bazie układu ESP32 w dwóch odsłonach: od prostego pianina na klawiaturze numerycznej, po zaawansowany syntezator sterowany przez MIDI. W głównej części zrealizowaliśmy obsługę polifonii oraz zaprogramowaliśmy efekty takie jak Robot, Synthwave i Flanger, zmieniające barwę w czasie rzeczywistym. Całość uzupełnia obsługa pokręteł, które pozwalają na płynne sterowanie efektami oraz regulację głośności instrumentu.

Niezbędne elementy

Do części pierwszej:

  • ESP32,
  • breadboard,
  • przewody połączeniowe,
  • klawiatura membranowa 4x4,
  • buzzer,
  • MAX98357A I2S Amp,
  • kabel microUSB

Do części drugiej:

  • ESP32,
  • breadboard,
  • przewody połączeniowe,
  • kabel USB B,
  • kabel MIDI,
  • moduł wejścia MIDI,
  • pianino MIDI
Sprzęt

Komputer z Thonny

Opis projektu

Projekt polegał na zbudowaniu własnego instrumentu muzycznego opartego na mikrokontrolerze ESP32. Całość zrealizowaliśmy w dwóch etapach, aby zaprezentować różne metody generowania dźwięku.

Projekt składał się z 2 części:

Pianino na klawiaturze numerycznej: W tym etapie wykorzystaliśmy klawiaturę membranową 4x4 (typu kalkulator/zamek kodowy). Mikrokontroler odczytuje wciśnięte klawisze numeryczne i przypisuje im konkretne częstotliwości dźwięku. W efekcie powstał prosty instrument, który pozwala na wygrywanie melodii pojedynczymi dźwiękami, co pozwoliło nam zrozumieć podstawy obsługi wejść cyfrowych.

Syntezator MIDI: To główna część projektu, w której podłączyliśmy zewnętrzną klawiaturę MIDI przez dedykowany adapter. Mikrokontroler generuje tutaj dźwięk w czasie rzeczywistym metodą syntezy Wavetable. Kluczową funkcją, którą zaprogramowaliśmy, jest polifonia, która pozwala na odtwarzanie kilku dźwięków jednocześnie. W syntezatorze oprogramowaliśmy obsługę pokręteł, które pozwalają na zmianę charakterystyki dźwięku w trakcie gry. Dostępne tryby to:

  • Zwykły: Czyste brzmienie podstawowe.
  • Robot: Barwa ostra i metaliczna (fala piłokształtna).
  • Synthwave: Barwa stylizowana na lata 80. (fala prostokątna).
  • Flanger: Efekt modulacyjny dodający głębię dźwięku.

Dodatkowo jedno z pokręteł (CC 7) zaprogramowaliśmy jako główny regulator głośności, co pozwala na płynne ściszanie i podgłaśnianie instrumentu bez potrzeby ingerencji w kod czy wzmacniacz.

Zdjęcia
kod programu

kod poniżej

Pliki_projektu
Schemat
Youtube
Tagi
microPython MIDI syntezator ESP32 pianino