一、安装环境配置
1、给树莓派安装Arduino编译器
sudo apt-get install arduino
![](https://i-blog.csdnimg.cn/blog_migrate/7464f082cc9e65f9415797553610ed9a.png)
打开设置就可以找到
![](https://i-blog.csdnimg.cn/blog_migrate/c9a256ac5617deb2a2cf7b1d5130be25.png)
2、给树莓派装GPIO库
指令下载可能有问题 我们用U盘传到树莓派
链接:https://pan.baidu.com/s/1zChAbZAnH7gZ9YDy4nN0PQ?pwd=7lj0
提取码:7lj0
![](https://i-blog.csdnimg.cn/blog_migrate/0351f4640fcda90788cfb0b827f8b99c.png)
将文件解压 终端进入文件夹输入 我们给两个两个python版本都装上
sudo python setup.py install
sudo python3 setup.py install
![](https://i-blog.csdnimg.cn/blog_migrate/16df9ed0d32338024b0cec804b8e7f75.png)
3、USB通信安装serial
我们再重新开个终端输入
sudo apt-get install python-serial
sudo apt-get install python3-serial
![](https://i-blog.csdnimg.cn/blog_migrate/7b9b28e0b924cc95f76803c1c1f19a06.png)
4、安装串口调试工具
sudo apt-get install minicom
配置工具
sudo minicom -s
选择第三个
![](https://i-blog.csdnimg.cn/blog_migrate/869d5e020658a0d7d8148350da80c66e.png)
进入串口配置
输入A /dev/ttyAMA0
输入E 9600 8N1
输入F 设 为 NO
每输入一个就按Enter回车确认再输入下一个
输入完Enter回车退出
![](https://i-blog.csdnimg.cn/blog_migrate/a75bc331a4180e635ea6d5c651b34a1e.png)
我们再选择第四个
![](https://i-blog.csdnimg.cn/blog_migrate/afe8e6ac6f99f95943979b98839273cc.png)
将A的Init string,B的Reset string,K的Hang-up string改为空的
![](https://i-blog.csdnimg.cn/blog_migrate/8f65d588175c1ad16ef9c3a15cb35073.png)
退出保存Save setup as df1
![](https://i-blog.csdnimg.cn/blog_migrate/2a75ed4f14200646b18a4b42968075af.png)
二、检查环境
1、python库检查
终端输入python
分别
import serial
import RPi.GPIO
![](https://i-blog.csdnimg.cn/blog_migrate/1636490e5666128d87f0c9721948e795.png)
2、检查端口
将Arduion Uno与树莓派 的USB连接
ls /dev/tty*
![](https://i-blog.csdnimg.cn/blog_migrate/e0e14f27ed112aa499d59c020d1df0e6.png)
三、测试代码
1、Arduino代码
上传完需要拔了USB重新接树莓派
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(Serial.available())
{
if('s'==Serial.read())
Serial.println("Arduino");
delay(1000);
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/0e8d8281913735c6378664e3a6e2e6c5.png)
2、树莓派代码
import serial
ser = serial.Serial('/dev/ttyACM0',9600,timeout=1);
try:
while 1:
#ser.write('s'.encode())
response = ser.readline();
print(response)
except:
ser.close();
直接运行,树莓派给Arduino发送s,Arduino返回"Arduino"就是通讯成功了
![](https://i-blog.csdnimg.cn/blog_migrate/a46224723e056afac5dd10ac11ffe826.png)