Игрушечный паровоз, который звенит колоколами. Коснись сенсора на корпусе — раздаётся удар, и нота сама затухает за две с половиной секунды. Три ручки меняют высоту, материал колокола и яркость удара.
ATmega328P 16 МГцFM-синтез3 голоса16384 отсчёта/сШИМ на D9
Полоски на корпусе — ноты, крутилки на задней стенке — ручки, внизу — выход на наушники. Динамик стоит в кабине, разъём питания USB Type-C — в дне. Фото без подписей
Как он звучит
Внутри работает FM-синтез, тот же приём, что в синтезаторах Yamaha DX7. Один синус качает фазу другого. Когда их частоты в целом отношении (1, 2, 3), звук получается гладким, как электропиано. Когда в дробном (1.4, 2.76, 6.3), появляются негармоничные обертоны, и выходит колокол, колокольчик или гонг.
Яркость удара гаснет быстрее громкости: в начале звонкий металлический «дзынь», в хвосте мягкий тон. Так ведут себя настоящие колокола.
Входы и выходы
A5
Сенсор «до» касание
Нота до первой октавы (MIDI 60). Палец тянет показание вниз, удар срабатывает при падении больше 200 единиц.
A6
Сенсор «ми» касание
Нота ми (MIDI 64). Можно зажимать вместе с другими: три ноты звучат аккордом.
A7
Сенсор «соль» касание
Нота соль (MIDI 67). Вместе с до и ми получается до-мажорное трезвучие.
A2
Высота ручка
Сдвигает все ноты на ±12 полутонов, в середине — без сдвига.
A3
Материал ручка
Восемь положений, отношение частот модулятора к несущей: 1 · 2 · 3 — мягко и полое, как электропиано; 1.4 · 2.76 · 3.5 — колокол и колокольчики; 4.95 · 6.3 — гонг и металл.
A4
Глубина модуляции ручка
В нуле — чистый синус. На максимуме — резкий металлический удар.
A0
Светодиод выход
Второй ножкой к +5 В, поэтому горит при низком уровне. Светится, пока звенит удар.
D9
Звук выход
ШИМ Mozzi, несущая около 32,8 кГц. Идёт напрямую на гнездо для наушников внизу задней стенки, а с него на усилитель PAM8403 и динамик 8 Ом в кабине. Если воткнуть наушники, звук пойдёт в них.
USB
Питание вход
Разъём USB Type-C в дне паровоза.
Электрическая схема
СветодиодБелый, через 270 Ом от +5 В к пину A0. Горит, когда на A0 низкий уровень.
СенсорыКаждая медная полоска проводом идёт на свой пин, а пин через 1 МОм на +5 В. Палец тянет напряжение вниз.
КрутилкиКрайние выводы на +5 В и GND, средний на пин. Сейчас стоят две по 100 кОм и одна на 1 МОм, лучше все три по 10 кОм: АЦП Arduino рассчитан на источник не больше 10 кОм, с высокоомной ручкой показания плывут.
Гнездо для наушников
Обычное гнездо mini jack 3,5 мм на плату, TKX3-3.5-05, пять ножек. Внутри пружина: пока штекера нет, ножки 5 и 4 замкнуты, и звук с D9 проходит на усилитель. Штекер отжимает пружину, усилитель отключается, звук идёт в наушники.
Вид сверху, как на фото. Номера ножек по чертежу.Чертёж TKX3-3.5-05, внизу — сторона монтажа (вид снизу, зеркально). Источник: deltachip.kz
Как подключеноНожка 5 — D9, ножка 4 — вход PAM8403, ножка 1 — GND. Ножки 2 и 3 не подключены.
Если втыкать наушникиD9 идёт на гнездо напрямую. Наушники 32 Ом потянут из пина больше 40 мА, а это его предел. Безопаснее поставить между D9 и ножкой 5 резистор 470 Ом – 1 кОм и конденсатор 10 мкФ плюсом к Arduino.
Чтобы не свистело
Если в тишине слышен тихий плавающий свист около 1–2 кГц, это ультразвук ШИМ с выхода D9 перегружает вход усилителя. Ни сенсоры, ни ручки тут ни при чём, мы проверили каждый вход по очереди.
Убавить регулятор на PAM8403Свист пропадает полностью, ноты остаются, только тише.
Поставить фильтрD9 → 1 кОм → 33 нФ на землю перед гнездом, лучше два звена подряд. Тогда громкость можно поднять.
Второй вход усилителяНеиспользуемый канал PAM8403 соединить с землёй, а не оставлять в воздухе.
Как записать в плату
Установить Arduino IDE и через менеджер библиотек библиотеку Mozzi версии 2.
Скачать архив ниже и распаковать: внутри папка fm_bells с файлом fm_bells.ino.
Нажать «Загрузить». Если загрузка не проходит, переподключить USB или сменить кабель.
Скетч fm_bells.ino
Архив с папкой для Arduino IDE, 205 строк с подробными комментариями на русском. Код лежит и на GitHub: sketches/fm_bells.ino.
Показать код
Загружаю…
Свой звук через Claude
Хотите другой инструмент вместо колоколов? Скопируйте промпт и отправьте его Claude. Первые три строки описывают плату, их оставьте как есть. Последнюю перепишите под свою идею.
Скетч Mozzi для Arduino Nano (atmega328old).
Пины: A2–A4 — ручки, A5–A7 — сенсоры (касание тянет вниз, ~1000 → ~300), A0 — светодиод (LOW = горит), звук на D9.
Сенсоры высокоомные: читай их медленно, через analogRead с паузой между переключениями каналов.
Нужно: три ноты на сенсорах, ручки задают тембр, громкость и затухание.