1 个不稳定版本
0.1.0 | 2023年9月6日 |
---|
#838 在 嵌入式开发
30KB
746 行
DFRobot DF2301Q Gravity 语音识别模块 Rust 驱动
这是 DFRobot 的 DF2301Q Gravity 语音识别模块 的 Rust 驱动。
有关 Python 和 C++ 库,请参阅相关的 DFRobot 仓库。
此模块允许用户通过 i2c 或 uart 连接并监视一组预设命令词,甚至可以训练自己的以触发行为。
构建
确保您已安装嵌入式 Rust 的依赖项,并在需要的地方安装所有工具。
要构建、烧录和监视,请使用 espflash cargo 命令,如下所示
cargoespflash flash --monitor
示例
UART
let peripherals = Peripherals::take().unwrap();
let tx = peripherals.pins.gpio43;
let rx = peripherals.pins.gpio44;
let config = Config::new().baudrate(Hertz(9600));
let uart = UartDriver::new(
peripherals.uart1,
tx,
rx,
Option::<gpio::Gpio0>::None,
Option::<gpio::Gpio1>::None,
&config,
)
.unwrap();
let (tx, rx) = uart.split();
let mut df2301q = df2301q::Df2301qUART::new(rx, tx);
df2301q.play_by_command_word(CommandWord::OpenCurtain).unwrap();
loop {
let command_word = df2301q.get_command_word().unwrap();
match command_word {
CommandWord::TurnOnTheLight => {
println!("TurnOnTheLight: Turning On Light");
},
CommandWord::TurnOffTheLight => {
println!("TurnOffTheLight: Turning Off Light");
},
CommandWord::Reset => df2301q.reset().unwrap(),
CommandWord::Silence => (), // Do nothing
_ => println!("Found: {command_word:?}")
}
}
I2C
let peripherals = Peripherals::take().unwrap();
let sda = peripherals.pins.gpio5;
let scl = peripherals.pins.gpio6;
let config = Config::new().baudrate(Hertz(115200));
let i2c = I2cDriver::new(
peripherals.i2c0,
sda,
scl,
&config,
)
.unwrap();
let mut df2301q = df2301q::Df2301qI2C::new(i2c);
df2301q.play_by_command_word(CommandWord::OpenCurtain).unwrap();
loop {
let command_word = df2301q.get_command_word().unwrap();
match command_word {
CommandWord::TurnOnTheLight => {
println!("TurnOnTheLight: Turning On Light");
},
CommandWord::TurnOffTheLight => {
println!("TurnOffTheLight: Turning Off Light");
},
CommandWord::Reset => df2301q.reset().unwrap(),
CommandWord::Silence => (), // Do nothing
_ => println!("Found: {command_word:?}")
}
}
依赖项
~71KB