主机 PC 和 Raspberry Pi Pico 之间通过 USB 进行双向通信

问题描述 投票:0回答:1

我正在尝试通过 Raspberry Pi Pico 的内置微型 USB 端口实现双向通信。更具体地说,我试图让我的计算机向 Pico 发送 ping,Pico 接收 ping 并用 pong 响应。

代码

这是我在计算机上运行的代码:

# This must not run on Pico, but on the host computer!

import serial
import time
import sys

# open a serial connection
s = serial.Serial("/dev/cu.usbmodem1101", 115200) # on my mac, this is how pico shows up

# blink the led
while True:
    s.write(b"ping\n")
    print("sent 'ping'")
    time.sleep(1)
    response = s.readline()
    print(f"received '{response}'")
    time.sleep(1)

这是我放在 Pico 上的代码(使用 Thonny Python IDE):

import time
import sys

while True:
    # read a command from the host
    v = sys.stdin.readline().strip()
    print(f"received '{v}'")
    time.sleep(1)
    
    sys.stdout.write(b"pong\n")
    print("sent 'pong'")

我首先单击 Thonny 中的绿色运行按钮,将代码放到 Pico 上。然后,我使用以下命令在计算机上运行第一个脚本:

$ python data_transfer_host.py

问题

我的 Pico 成功接收来自计算机的 ping。但我不知道如何将乒乓球发送回我的计算机。使用我现在的代码,文本

pong
被写入 Thonny 的控制台,如下所示:

screenshot of Thonny Python IDE showing a

我还尝试使用

sys.stdout.print(b"pong\n")
而不是
sys.stdout.write
但会导致错误:
AttributeError: 'TextIOWrapper' object has no attribute 'print'

usb micropython raspberry-pi-pico
1个回答
0
投票

真正的意图是什么 - 只是使用以结尾的文本命令与 Raspberry Pi 进行双向通信 ?

如果是,那么为什么不使用以太网?发送 e。 g。双向的 UDP/HTTP 数据包应该可以工作。

或者使用 RS232 UART 引脚 + 一些电子设备 和来自第二个 USB 端口的 USB 转串行适配器

Thonny Python IDE 也通过 USB 与 Raspberry Pi 通信吗? 那么什么有效,什么无效——可能是由 Thonny 定义的。

我通常通过以太网/SSH 访问我的 Raspberry Pi,并直接在 Raspberry Pi 上运行的 Ubuntu 的 shell 控制台中启动 python 脚本。 甚至在 Raspberry 上也集成了 python 命令行调试器? 如果您不使用 Thonny Python IDE,则 USB 未使用,也许可以使用适当的库重新配置并模拟所连接 PC 的串行接口(类似于

FTDI 的

RS232 = UART = 串行接口芯片)。 在树莓派论坛提问也能带来帮助。

© www.soinside.com 2019 - 2024. All rights reserved.