基于串行口的示波器

SerialScope的Python项目详细描述


PyPI version

串行口双通道示波器。仅限python 3

Screenshot (v0.1.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板。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
IntelliJ IDEA Java代码样式:注释和枚举之间的空间   java车辆路径问题或工具教程未在eclipse上运行   从HTML表单发布时,java非英语UTF 8字符会发生变化   使用MultiResourceItemReader时,java Spring批处理在CustomLineMapper中获取文件名   java配置JAXB解组器来处理同时具有acessor方法和字段的类   java在JpaRepository findAll()方法中返回对象的浅拷贝   java如何对docx文件进行碎片整理,以便与ApachePOI3.8一起使用?   java如何将一维数组分解成行?   java为什么这个图形对象不是绘画?(我做错了什么?)   如何在Java代码中将Java函数应用于Scala选项   使用IntelliJ REST客户端测试Spring MVC POST导致415   weka java代码kmeans群集   java中为什么Sin(30)=0.98803116240928618   java创建Android警报通知   数组可能是Java For循环问题