我如何让树莓派 pico 与 PC/外部设备通信

Æsa*_*sad 1 python raspberry-pi micropython raspberry-pi-pico

例如,当我给代码5时,我想打开我们的rpi pico中的LED(rpi pico通过电缆连接到电脑)

#This code will run in my computer (test.py)

x=int(input("Number?"))
if (x==5):
    #turn on raspberry pi pico led
Run Code Online (Sandbox Code Playgroud)

rpi pico的代码:

#This code will run in my rpi pico (pico.py)

from machine import Pin
led = Pin(25, Pin.OUT)

led.value(1)
Run Code Online (Sandbox Code Playgroud)

反之亦然(使用 rpi pico 中的代码在计算机上的代码中执行某些操作)

我如何调用/获取 pc 中的变量到 rpi pico

注意:我正在使用 opencv python 编写代码,我想在我的计算机上处​​理来自计算机摄像头的数据,并且我希望 rpi pico 根据处理后的数据做出反应。并将树莓派 pico 通过电缆连接到电脑。

lar*_*sks 8

主机和 Pico 之间通信的一种简单方法是使用串行端口。我有一个rp2040-zero,它向主机呈现为/dev/ttyACM0。如果我在 rp2040 上使用这样的代码:

import sys
import machine

led = machine.Pin(24, machine.Pin.OUT)

def led_on():
    led(1)

def led_off():
    led(0)


while True:
    # read a command from the host
    v = sys.stdin.readline().strip()

    # perform the requested action
    if v.lower() == "on":
        led_on()
    elif v.lower() == "off":
        led_off()
Run Code Online (Sandbox Code Playgroud)

然后我可以在主机上运行此命令以使 LED 闪烁:

import serial
import time

# open a serial connection
s = serial.Serial("/dev/ttyACM0", 115200)

# blink the led
while True:
    s.write(b"on\n")
    time.sleep(1)
    s.write(b"off\n")
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

这显然只是单向通信,但您当然可以实现一种将信息传递回主机的机制。