Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Воспроизведение песен на пассивной пищалке на Rust и ESP32

Мы будем проигрывать песни на пищалке. Если вы не уверены в нотах и нотной записи, можете посмотреть краткую теорию здесь.

Я разбил код на модули Rust (в этом упражнении, как и раньше, можно обойтись одним файлом): music и got.

Для этого упражнения рекомендуется пассивная пищалка, хотя подойдёт любая.

ШИМ

Мы будем использовать ШИМ, чтобы менять частоту сигнала, подаваемого на пищалку, причём каждая частота соответствует определённой музыкальной ноте. Частота (нота) звучит заданное время, после чего переключается на следующую ноту в соответствии с нотным листом.

Например, нота «ля» (A4) имеет частоту 440 Гц и звучит некоторое время X. Мы задаём эту частоту в ШИМ и добавляем задержку на время X.

Рекомендую прочитать раздел о ШИМ, чтобы разобраться, как работает ШИМ.

Репозиторий с песнями

В этом упражнении мы будем проигрывать тему «Розовой пантеры» (Pink Panther). Однако вы можете посмотреть созданный мной репозиторий rust-embedded-songs и использовать другие песни.

Подмодули в lib.rs

Обновите lib.rs, чтобы объявить подмодули, а затем создайте файлы music.rs и pink_panther.rs.

#![allow(unused)]
#![no_std]
fn main() {
pub mod music;
pub mod pink_panther;
}