【问题标题】:Pyserial microcontroller to host communication用于主机通信的 Pyserial 微控制器
【发布时间】:2023-04-16 09:34:02
【问题描述】:

我正在使用带有 Python 和 pyserial 的 Beaglebone Black (BBB) 与 OBD-II 阅读器进行通信。我本质上是在尝试构建一个可定制的数字仪表面板。理想情况下,我想将 Flash 用于 GUI。遗憾的是,Linux 对 Flash 的支持非常薄弱。我希望能够使用 Python 将数据从 BBB 发送到 OSX 主机。

我目前正在使用终端进入 BBB 以运行代码。我需要能够通过 USB/串行接口从 BBB 向运行 Flash 的 OSX 计算机发送数据。实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: python macos flash pyserial beagleboneblack


    【解决方案1】:

    我没有使用过 beaglebone。我使用过 arduino 的串行 I/O。但是这个post 说你在 BBB 上有多个串行 I/O 端口。找到适合串口转 USB 的连接器/转换器。

    然后使用 pyserial python 模块。 在 OSX 上,当连接到 /dev/ttyo1 之类的路径上时,您会找到您的设备,其中 dev 是我的系统名称,而 ttyo1 或类似名称将是您的设备。

    import serial as s
    device = "/dev/tty01"
    bbb = s.Serial(device, 4800) #the second param is baudrate
    
    while(True):
        bbb.readline()
        # do what you want with the output.
        bbb.write('input')
    

    这将读到行尾字符并给你一个字符串。然后将“输入”写入 bbb 上的串行 io。您将需要在 BBB 上运行一个类似的程序来读取此输入并使用它执行您想要执行的操作。

    所以会有两个python程序。一个在 OSX 上,另一个在 BBB 上

    这样您就可以从 OSX.py 发出命令,让您的 BBB.py 处理并发送响应。 OSX.py 将读取并执行要执行的操作。

    您必须正确设计输入/输出周期。

    此外,如果 Flash 不是真的需要,您可以查看 pyside。

    【讨论】: