4 个版本
0.1.3 | 2021 年 6 月 22 日 |
---|---|
0.1.2 | 2021 年 6 月 21 日 |
0.1.1 | 2021 年 6 月 21 日 |
0.1.0 | 2021 年 6 月 21 日 |
#249 in 可视化
565KB
636 行
rustymind
锈脑是用纯 Rust 编写的 NeuroSky MindWave EEG 头戴设备的驱动程序和解析器。您可以使用它连接、交互并实时绘制头戴设备的数据。
解析器基于 NeuroSky 发布的 MindWave 通信协议。
下面是使用基于 rustymind
解析器的 CLI 工具 rustymind-plot
绘制的实时脑电图的截图。
入门
rustymind-plot
运行时需要两个参数
- MindWave 设备路径。在 Mac 上,路径可能是
/dev/tty.usbserial-10000
的格式 - 头戴设备 ID(打印在电池盒内部)
cargo run --bin rustymind-plot "/dev/tty.usbserial-10000" a05f
如果不传递头戴设备 ID 参数,则模块将自动连接到它找到的任何头戴设备。
要使用 rustymind
作为库,您需要使用 connect_headset
函数和 Parser
结构。例如
use rustymind::{connect_headset, PacketType, Parser};
let mut port = connect_headset("/dev/tty.usbserial-10000", b"\xa0\x5f")?;
let mut buffer: Vec<u8> = vec![0; 2048];
let mut parser = Parser::new();
loop {
let bytes_read = port.read(buffer.as_mut_slice()).unwrap();
for i in 0..bytes_read {
if let Some(x) = parser.parse(buffer[i]) {
for r in x {
match r {
PacketType::Attention(value) => {
println!("Attention value = {}", value);
}
PacketType::Meditation(value) => {
println!("Meditation value = {}", value);
}
PacketType::AsicEeg(value) => {
println!("EEG power values = {:?}", value);
}
_ => (),
}
}
}
}
}
此软件不适用于医疗诊断或治疗。
依赖项
~15–26MB
~217K SLoC