背景:想在树莓派上插上Arduion Uno的串口,进而两者进行通讯,后根据数据进一步判断并通过另一个Raspberry Pi的usb接口接上SIM900打电话的功能。
实践OK,如下:
输入minicom后,想退出怎么办,帮助:Ctrl+a,退出:x(eXit and reset.....X ),清屏:c(Clear Screen.......C)
用c语言读取的代码如下:
http://jackxiang.com/post/8003/
1.安装python(安装过的请跳到下一步): sudo aptitude install python-dev
2.安装python的GPIO模块,用于控制LED、电机等(安装过的请跳到下一步)
命令行下 输入(一行一个命令)
wget http://raspberry-gpio-python.googlecode.com/files/RPi.GPIO-0.3.1a.tar.gz (下载GPIO库)
tar xvzf RPi.GPIO-0.3.1a.tar.gz (tar解压)
cd RPi.GPIO-0.3.1a (进入解压后的文件夹)
sudo python setup.py install (安装GPIO库文件)
复制代码 要是看不懂上面的两点请移步到这http://www.shumeipai.net/forum.php?mod=viewthread&tid=939
3.安装serial,用于串口通信及USB通信:
sudo apt-get install python-serial
复制代码 4.当然你要是想在树莓派装串口调试工具就装:
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 为你连接开发板的端口
。(如何更详细使用说明移步到这http://www.shumeipai.net/forum.php?mod=viewthread&tid=550)
接下来测一下环境是否都OK
sudo nano test.py
或用xwindow下用python IDE打开一个空的文件
输入内容
import serial
import RPi.GPIO
保存退出,
然后运行代码:
python test.py
(如果没有报错那就说明RPi.GPIO与serial两个库安装成功)上面环境说完了,重点部份来了
USB对接方式:
1.插上两个Arduion Uno与树莓派 的USB 然后 在树莓派输入:
ls /dev/tty*
查看有没有ttyACM0 这个文件(注只有在两个硬件USB互连的情况下才会有这个。如果两者没有连接是不会有的) 最新的系统一般都会自动生成。看到ttyACMO就说明二者可以通讯了 接下来上测试代码
Arduino代码:
byte number = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
if (Serial.available()) {
number = Serial.read();
Serial.print("character recieved: ");
Serial.println(number, DEC);
}
}
先把上面的代码下载的Arduino上然后再把两者USB互接
树莓派python代码:
import serial
ser = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
ser.open()
ser.write("testing")
try:
while 1:
response = ser.readline()
print response
except KeyboardInterrupt:
ser.close()
保存xxx.py 退出
注:树莓派下的serial与GPIO库都要在root帐户下才能运行
Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法:
http://lovesoo.org/python-script-error-attributeerror-module-object-has-no-attribute-solve-method.html
然后运行树莓派代码 python xxx.py(这里的xxx就是你保存的树莓派代码)看到
character recieved: 116
character recieved: 101
character recieved: 115
...
character recieved: 103
说明两者USB通迅成功了
摘自:http://forum.eepw.com.cn/thread/258770/1
实践OK,如下:
输入minicom后,想退出怎么办,帮助:Ctrl+a,退出:x(eXit and reset.....X ),清屏:c(Clear Screen.......C)
用c语言读取的代码如下:
http://jackxiang.com/post/8003/
1.安装python(安装过的请跳到下一步): sudo aptitude install python-dev
2.安装python的GPIO模块,用于控制LED、电机等(安装过的请跳到下一步)
命令行下 输入(一行一个命令)
wget http://raspberry-gpio-python.googlecode.com/files/RPi.GPIO-0.3.1a.tar.gz (下载GPIO库)
tar xvzf RPi.GPIO-0.3.1a.tar.gz (tar解压)
cd RPi.GPIO-0.3.1a (进入解压后的文件夹)
sudo python setup.py install (安装GPIO库文件)
复制代码 要是看不懂上面的两点请移步到这http://www.shumeipai.net/forum.php?mod=viewthread&tid=939
3.安装serial,用于串口通信及USB通信:
sudo apt-get install python-serial
复制代码 4.当然你要是想在树莓派装串口调试工具就装:
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 为你连接开发板的端口
。(如何更详细使用说明移步到这http://www.shumeipai.net/forum.php?mod=viewthread&tid=550)
接下来测一下环境是否都OK
sudo nano test.py
或用xwindow下用python IDE打开一个空的文件
输入内容
import serial
import RPi.GPIO
保存退出,
然后运行代码:
python test.py
(如果没有报错那就说明RPi.GPIO与serial两个库安装成功)上面环境说完了,重点部份来了
USB对接方式:
1.插上两个Arduion Uno与树莓派 的USB 然后 在树莓派输入:
ls /dev/tty*
查看有没有ttyACM0 这个文件(注只有在两个硬件USB互连的情况下才会有这个。如果两者没有连接是不会有的) 最新的系统一般都会自动生成。看到ttyACMO就说明二者可以通讯了 接下来上测试代码
Arduino代码:
byte number = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
if (Serial.available()) {
number = Serial.read();
Serial.print("character recieved: ");
Serial.println(number, DEC);
}
}
先把上面的代码下载的Arduino上然后再把两者USB互接
树莓派python代码:
import serial
ser = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
ser.open()
ser.write("testing")
try:
while 1:
response = ser.readline()
print response
except KeyboardInterrupt:
ser.close()
保存xxx.py 退出
注:树莓派下的serial与GPIO库都要在root帐户下才能运行
Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法:
http://lovesoo.org/python-script-error-attributeerror-module-object-has-no-attribute-solve-method.html
然后运行树莓派代码 python xxx.py(这里的xxx就是你保存的树莓派代码)看到
character recieved: 116
character recieved: 101
character recieved: 115
...
character recieved: 103
说明两者USB通迅成功了
摘自:http://forum.eepw.com.cn/thread/258770/1
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/8003/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2015-5-3 18:50
评论列表