树莓派python串口通信_树莓派——树莓派和Arduino的简单串口通信

本文参考《爱上Raspberry Pi》第六章,同学们可以选择直接看书,本文只是把关键的部分提炼了出来,仅供大家参考~~~

定位串口

想要使树莓派和Arduino进行串口通信,首先要确定Arduino连在树莓派上的串口设备名,就像在Windows上打开设备管理器查看所连接的端口(COM)是多少一样。

与Windows的查看方式不同,树莓派等linux系统的设备管理是在/dev/目录下的,可以通过 ls  /dev/tty*查看;

也可以直接在树莓派上的Arduino IDE的Serial Port中查看;

第一次连上一般都是 ttyACM0 ,之后如果进行过插拔,这个端口号可能会变,在编写代码和烧写程序的时候要记得调整。

串口通信

要让树莓派和Arduino通过串口通信,在Arduino端需要使用内置的Serial库,在树莓派端需要使用Python的pySerial串口通信模块。

安装Python的串口通信模块:

sudo apt-get install python-serial python3-serial

安装好通信模块之后,接下来就可以开始进行测试了。

首先打开Arduino IDE,把下面的代码输入到Arduino上,并进行编译和烧写;

void setup()

{

Serial.begin(9600); //定义波特率

}

void loop()

{

for (byte n = 0; n < 255; n++) {

Serial.write(n); //向串口写入n

delay(50); //延时0.05s

}

}

(这段程序把一个递增的数字序列发送到串口上。)

然后编写在树莓派上运行的Python脚本:

import serial

port = "/dev/ttyACM0"

serialFromArduino = serial.Serial(port,9600) //打开串口,连接到Arduino上

serialFromArduino.flushInput() //清空输入缓冲区

while True:

if (serialFromArduino.inWaiting() > 0):

input = serialFromArduino.read(1) //从串口缓冲区读入一个字节的数据

print(ord(input)) //用ord()函数把读入的字节数据转换为实际的数值

上面这段代码可以先使用vim 进行编辑,保存退出之后再用 python  example.py 运行。

运行Python代码之后就可以看到命令行界面收到Arduino发送来的数据了。

注意:在创建Python代码文件的时候,一定要先使用sudo touch example.py 创建一个空文件出来,然后修改权限为777(sudo chmod 777 example.py ),之后再vim  example.py 进去进行编辑;如果直接vim创建并编辑的话会因为权限问题导致不能保存,功亏一篑!

进一步学习

上面只是简单的介绍了如何使用 serial 串口通信模块,还有py脚本的编辑和运行,想要实现树莓派和Arduino IDE真正的串口通信(一发一收),可以参考《爱上Raspberry Pi》的P109-P111.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值