基于串行口的示波器

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第三方库


热门话题
从PHP代码调用使用Axis创建的Java web服务   java空白“存储库视图”,带有新的EclipseRCP4.16和EGIT5.8   java我可以通过hadoop中的代码提前完成映射任务吗?   java将ZoneDateTime从Dropwizard保存到MySQL时出现问题   java如何在方法中返回中断或继续?   java如何在JAXWS客户机上指定客户机证书和客户机证书身份验证   java IOException:权限被拒绝   如何在Java中处理XML从XML数据库检索数据   java删除数组列表中的第二个元素   未注册java方案“ttps”   如何使用Selenium和Java从自动建议中选择选项?   java8可选如何正确使用它?   java存储过程无法从Hibernate调用   java为什么惰性抓取不起作用JPA   java如何从多个图像选择可用条件中划分一个图像选择案例?   java将数组定义为类变量,用户输入维度   java截图例外:截图已拍摄   非常简单的Android应用程序中的java内存泄漏   java facebook是否要求可信应用程序的身份验证?