如何从终端通过Python将Raspberry Pi连接到串行USB端口

Raspberry Pi可用于通过其GPIO与现实世界进行交互,例如,通过控制步进电机。 您也可以使用Raspberry Pi通过串行USB端口与某些设备(例如Arduino)对话。

在本指南中,我将向您展示如何将Raspberry Pi连接到串行USB端口,以及如何从终端(没有桌面环境)中使用Python读取其值。 为此,我们将使用Pyserial及其终端工具。

我们需要的

对于这个项目,我将使用Raspberry Pi Zero W和Arduino Uno R3。 步骤也应与较新的Raspberry Pi板一起使用。

  • Raspberry Pi Zero W(包括适当的电源或至少3A的智能手机微型USB充电器)或更新的板
  • 微型SD卡(至少16 GB,至少10类)
  • Arduino Uno R3开发板或兼容开发板(您也可以考虑使用Elegoo入门套件)。

分步指南

我们将从在Raspberry Pi Zero W中安装Raspbian Buster Lite开始。然后,我们将使用Python安装适当的库以从Arduino Uno R3读取数据。

树莓派环境准备

在Raspberry Pi文章中安装Raspbian Buster Lite,以安装Raspberry PI OS。

此外,Rasbpian Buster Lite预先安装了Python。

现在,我们必须使用第一个草图配置Arduino Uno。 为此,您有两种选择:

安装Pyserial

在安装Pyserial之前,我们需要获得一点信息:

 sudo apt install python-pip 

现在我们可以继续安装Pyserial:

 python -m pip install pyserial 

测试安装和读取控制台

要阅读我们的控制台,我们需要将Raspberry Pi USB端口连接到Arduino一个。 为了进行测试,我将向您显示天气系统的结果:

Raspberry Pi Arduino weather station

必须将Arduino配置为在其运行草图中使用Serial.print命令通过COM端口发送数据。 请记住,在Arduino草图中的每个数据样本后面附加回车符(文本“ \ n”) ,以便每个读数具有不同的行。

在此配置中,您可以简单地使用Pyserial miniterm工具列出可用的端口及其输出。 使用命令python -m serial.tools.miniterm ,然后输入设备端口并在屏幕上接收端口数据。 使用CTRL +]关闭连接:


   
   
pi @ raspberrypi: ~ $ python -m serial. tools . miniterm
--- Available ports:
---   1 : /dev/ttyACM0         'ttyACM0'
---   2 : /dev/ttyAMA0         'ttyAMA0'
--- Enter port index or full name: /dev/ttyACM0
--- Miniterm on /dev/ttyACM0   9600 , 8 , N , 1 ---
--- Quit: Ctrl+ ] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
20.0 ; 61.0
20.0 ; 61.0
20.0 ; 61.0
--- exit ---

如果您已经知道端口名称,也可以直接在端口读数上直接添加端口名称。 在我的示例中,正确的端口是/ dev / ttyACM0 (请参阅仅通过Raspbian Buster Lite的终端通过终端将Raspberry Pi连接到Arduino,以了解如何发现您的端口),因此直接命令将是:


   
   
pi @ raspberrypi: ~ $ python -m serial. tools . miniterm /dev/ttyACM0
--- Miniterm on /dev/ttyACM0   9600 , 8 , N , 1 ---
--- Quit: Ctrl+ ] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
20.0 ; 61.0
20.0 ; 61.0
20.0 ; 61.0
--- exit ---

在Python程序中使用Pyserial

另外,此操作非常简单。 您需要导入一个串行库并打开端口。 创建一个名为“ test.py”的文件:

 nano test . py 

并包含以下代码:


   
   
import serial
ser = serial. Serial ( ’/dev/ttyACM0’ , 9600 )
readedText = ser. readline ( )
print ( readedText )
ser. close ( )

执行:

 python test . py 

请享用!

文章最初发布在peppe8o.com上 经许可重新发布。

翻译自: https://opensource.com/article/20/5/usb-port-raspberry-pi-python

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值