您的位置:首页 > 产品设计 > UI/UE

使用串口连接Arduino与树莓派开发板

2016-03-14 11:26 645 查看
关于树莓派与Arduino UNO的对接,网上的资料也有不少,无外乎三种方式(USB方式,GPIO方式,IIC方式),其中最容易实现的就是第一种了,相比于第二种方式不需要额外的硬件,相比于第三种方式通讯协议比较简洁,所以我想就第一种实现方式详细分享一下。

一、首先准备必要的开发环境

Arduino:直接在官网下载最新的IDE即可:https://www.arduino.cc/en/Main/Software

PC与Arduino连接的驱动程序一般在开发板的购买页面有提供

测试传感器:https://item.taobao.com/item.htm?id=38200881199&ali_trackid=2:mm_112525452_11510125_40848013:1457923452_2k3_1545520599&pvid=200_10.98.16.149_433_1457923452458&ali_trackid=2:mm_112525452_11510125_40848013:1457923452_2k3_1545520599&pvid=200_10.98.16.149_433_1457923452458

树莓派:一般树莓派上运行的debian Linux 集成了Python模块,但是还需要安装Python的一个库文件,由于需要在Linux系统中下载这个库文件并解压,但是由于这个库文件在国外的服务器上面,所以基本上连都连不上,于是我自己在网上找了一个,同样能用,提供网盘链接如下:

http://pan.baidu.com/s/1nuflpxv

可以自己在Windows系统中下好了然后用U盘cp到Linux目录下,方法我就不说了,有Linux系统基础的应该都明白怎么做。

然后在压缩包所在的目录下运行:

tar xvzf RPi.GPIO-0.3.1a.tar.gz (tar解压)
cd RPi.GPIO-0.3.1a (进入解压后的文件夹)
sudo python setup.py install (安装GPIO库文件)


紧接着安装serial,用于串口或者USB通信

sudo apt-get install python-serial


安装串口调试工具

sudo apt-get install minicom


配置minicom

sudo minicom -s


启动出现配置菜单:选serial port setup

进入串口配置

输入A 配置串口驱动为/dev/ttyAMA0

输入E 配置速率为9600 8N1

输入F 将 Hardware Flow Control 设 为 NO

回车 退出

由于我们使用minicom作为超级终端控制路由器等设备, 而不是控制modem, 所以需要修改Modem and dialing, 将Init string, Reset string, Hang-up string设置为空. 设置完成后选择Save setup as dfl将当前设置保存为默认设置. 在配置菜单 选Save setup as df1保存(一定要记得这一步) 选Exit退出下次在输入minicon 即可直接进入。

命令minicom是进入串口超级终端画面,而minicom -s为配置minicom。说明/dev/ttyAMA0 对应为串口0 为你连接开发板的端口

接下来测一下环境是否都OK

sudo vim test.py


在打开的文件中编辑如下代码

import serial
import RPi.GPIO


保存退出然后运行

python test.py


若没有报错即说明上面两个库安装成功,可以进行接下来的操作了

将Arduino用USB线连接到树莓派的USB,在树莓派中输入

ls /dev/tty*


看有没有ttyUSB0或者ttyUSB1生成,如果两者没有连接是不会自动生成这个文件的,看到说明两者可以通讯了,接下来上测试代码:

Arduino:

int  temp,data;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
temp=analogRead(0);
temp = (long)100*temp/1024;
Serial.print("db:");
Serial.println(temp);
delay(1000);
}


连接方式,传感器V端口接Arduino的5V端口,G端口接Arduino的GND端口,A0端口接Arduino的模拟输入的A0端口,传感器的D0端口为数字输出端口,此脚悬空。

树莓派代码:

import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
ser.open()

ser.write("testing")
try:
while 1:
response = ser.readline()
print response
except KeyboardInterrupt:
ser.close()


保存为xxx.py后退出

然后将Arduino的程序上传到开发板,连接好电路之后运行树莓派的程序,运行截图如下:



这样就能用树莓派监控声音传感器的运行状态了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arduino 硬件 通讯