使用串口连接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系统基础的应该都明白怎么做。
然后在压缩包所在的目录下运行:
紧接着安装serial,用于串口或者USB通信
安装串口调试工具
配置minicom
启动出现配置菜单:选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
在打开的文件中编辑如下代码
保存退出然后运行
若没有报错即说明上面两个库安装成功,可以进行接下来的操作了
将Arduino用USB线连接到树莓派的USB,在树莓派中输入
看有没有ttyUSB0或者ttyUSB1生成,如果两者没有连接是不会自动生成这个文件的,看到说明两者可以通讯了,接下来上测试代码:
Arduino:
连接方式,传感器V端口接Arduino的5V端口,G端口接Arduino的GND端口,A0端口接Arduino的模拟输入的A0端口,传感器的D0端口为数字输出端口,此脚悬空。
树莓派代码:
保存为xxx.py后退出
然后将Arduino的程序上传到开发板,连接好电路之后运行树莓派的程序,运行截图如下:
这样就能用树莓派监控声音传感器的运行状态了
一、首先准备必要的开发环境
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的程序上传到开发板,连接好电路之后运行树莓派的程序,运行截图如下:
这样就能用树莓派监控声音传感器的运行状态了
相关文章推荐
- Android IPC进程间通讯机制
- 康诺云推出三款智能硬件产品,为健康管理业务搭建数据池
- PHP实现连接设备、通讯和发送命令的方法
- C#窗体间通讯处理的几种方法总结
- flash javascript之间的通讯方法小结
- C#窗体间通讯的几种常用处理方法总结
- php实现与erlang的二进制通讯实例解析
- python获取各操作系统硬件信息的方法
- Python获取电脑硬件信息及状态的实现方法
- 基于Arduino+LabVIEW的多路数据采集系统
- 基于Arduino+LabVIEW的串口控制LED亮灭
- 基于Protues的Arduino学习笔记01-Arduino UNO实验板设计
- 《Arduino与LabVIEW开发实战》-前言
- Arduino(一)
- 查看linux系统硬件信息
- Linux下的硬件安装
- 准确判断硬件故障
- LINUX中的硬件设备号