「电子」树莓派4B与Arduino开发板通信
前言
大学开学也快两个月了,现在这边是运动会。
当然,作为大学生的我当然不会参加任何运动会比赛的啦。
目前就正在整挑战杯的比赛,我也没想到我会去参加硬件这方面。
哈哈哈,就当拓宽路子了
处理
额,当然。我这边树莓派装的是官方的 x64 位系统,需要装PHP那一些,打算还是安装 x64 位系统会方便一些。
因为之前吃过了 x32 的痛苦,怎么装都装不上去。
注意:本篇文章都在 root 用户下执行,如果发现没有权限需要 su
或 sudo
进行提权操作
出现的问题
首先,更新一下
1 | apt-get update |
1 | apt-get upgrade |
我这边还是安装了,Python3,最先我试过了Python2.7发现不太行。会出现下面的一个问题 serial 库怎么都装不上。
后面呢就安装了 Python3 来处理,发现 Serial 库安装上了,但是 RPi.GPIO 库安不上了,反正两个必需品就是有一个装不上
对应的 demo.py 文件如下
1 | import serial |
尝试处理
因为现在还是 python3 开发居多,所以我果断还是选择了 python3
先卸载掉 python2.7
1 | 树莓派自带的 Python |
安装 Python3
1 | apt-get install python3 |
执行不需要的依赖删除
1 | apt-get autoremove |
通过 CSDN 一顿查询,发现有 Python3 的 RPi.GPIO 模块
我去,这不是更好。
补充安装 Python3 的 Serial 模块
利用 pip 安装 serial
毕竟我原本就用过下面这条指令,发现这个操作并不可行
1 | apt-get install python-serial |
他找不到,那有什么办法,只好找其他方法咯。
后面看到可以用 pip 安装,那就用这个吧
(好在不需要我怎么配置)
1 | pip install pyserial |
最后再一次执行 demo.py 文件,发现不会报错了,OK了。
那么环境和库文件就没问题了。
配置Arduino
ArduinoIDE
在 ArduinoIDE 软件中写入以下代码
1 | void setup() |
然后直接烧录进入 Arduino 开发板中,在串口监视器输入 s 后可以直接返回结果。
证明直接在串口监视器下操作是没有问题的,也就是说这个程序是不存在问题的。
树莓派编辑 Python 页面
首先,我们需要将 Arduino 开发板与树莓派使用USB口进行链接。
随后进行查找接口
1 | ls /dev/tty* |
查看有没有ttyACM0 这个文件(注只有在两个硬件USB互连的情况下才会有这个。如果两者没有连接是不会有的)最新的系统一般都会自动生成。看到ttyACM0就说明二者可以通讯了
在树莓派中创建一份名字为 demo.py 的文件后输入内容
1 | import serial |
但是,在这里我发现一个致命的问题。
这个 Python 程序死活读不出来串口数据。
怎么读取都是 No Result 的结果。
后面我就抛开了树莓派的限制,直接查询 Arduino 与 Python 之间 Serial 的通信。
发现别人给的示例代码中,需要给 ser.write('s'.encode())
相当于需要编码
那么最终成型的代码如下所示
1 | #!/usr/bin/python3 |
就可以成功用 Python3 进行输出了
页脚
说明
一篇记录文章,以前没玩过,都需要自己慢慢琢磨。
后期可能要玩到机械臂,还得先学一下 Python