基于串行口的示波器
SerialScope的Python项目详细描述
串行口双通道示波器。仅限python 3。
$ pip install SerialScope --user # just for you
或者,
$ sudo -E pip install SerialScope # for all users
安装后,启动它。
$ serialscope
路径~/.local/bin
应该在PATH
环境变量中。
或者,
$ python3 -m SerialScope
默认波特率是115200
。示波器将自动
找到与Arduino连接的任何串行端口。
todo/fixme您可以从命令行更改这些值
usage: serialscope [-h] [--port PORT] [--baudrate BAUDRATE]
Arduino NeuroScope.
optional arguments:
-h, --help show this help message and exit
--port PORT, -p PORT Serial port.
--baudrate BAUDRATE, -B BAUDRATE
Baudrate of Arduino board.
依赖关系
- pyserial
- Pysimplegui
- 屏幕信息(可选)
工作原理
这个示波器有两个通道。它假设发送1字节的数据
对于每个频道。如果使用Arduino的模拟管脚读取数据,则
你的分辨率是5/255
伏特。
Arduino板
函数analogRead
返回10位值,即介于0和1023之间。你应该
将其缩放到255,在写入串行端口之前将其转换为char
。这是为了提高效率。
发送10位数据需要发送2个字节。对于2个频道,这将减慢
与每个通道仅发送1个字节相比,采样率降低了4倍。
可以在草图中使用以下片段。
<>请确保您的ARDUINO设置为使用最大可能波特率。我有 使用115200波特率,// Two critical functions.
char intToChar( int val)
{
// analogRead is 10 bits. Change it to 8 bits.
char x = (char) (255.0 * val/1023.0);
return x;
}
void write_data_line( )
{
// channel A is on pin A0 and channel B is on A1
char a = intToChar(analogRead(A0));
char b = intToChar(analogRead(A1));
Serial.print(a);
Serial.print(b);
Serial.flush();
}
在SerialScopeArduino/
目录中提供了一个草图。打开你的
Arduino IDE并上传到Arduino板。