标题:
利用Arduino和Raspberry Pi 学习电子编程
[打印本页]
作者:
designspark
时间:
2012-9-18 15:14
标题:
利用Arduino和Raspberry Pi 学习电子编程
Arduino是一个受欢迎的开放源硬体平台,通常会应用于机械人制作或家居自动化等项目,Arduino使用的是微控制器,而Raspberry Pi使用的是应用处理器,所以它们的应用范围并不会有太大的冲突,Raspberry Pi甚至能够成为Arduino的开发平台,让我为大家分析现时开发者们对这两个开发平台的看法。
Arduino和Raspberry Pi之间的通讯
Simon Monk的博客
中提到了如何使用Python实现两者之间的通讯,Arduino会传送'Hello Pi'的讯号,而Raspberry Pi1便会传送数字讯号给Arduino,Arduino便会根据该讯号闪耀LED特定的次数。
Arduino方面,作者推荐使用Arduino Uno型号,软件版本为1.0,较旧的版本会由于FTDI(把USB信号转换成RS-232或TTL串列传输的技术)的讯号产生而引起USB通讯问题,把文章中Arduino的程序烧录到Arduino就可以了。
Raspberry Pi方面,我们要使用特定的Python库 -
pySerial
,这个库包含了Arduino的指令,有关指令可以参考
这个网站
。以下的步骤要在Raspberry Pi上执行。
步驟1: 在
这个网站
下载
pyserial-2.5.tar.gz
,然后储存到Raspberry Pi 桌面中的'other'文件夹。
步骤2: 由于我们下载的是gziped tar文件,我们需要解压(unzip)和解取(untar)该文件,请于终端器(Terminal)中输入以下指令:
cd /home/pi/Desktop/other
gunzip pyserial-2.5.tar.gz
tar - xvf pyserial-2.5.tar
步骤3: 安装pySerial,请于终端器(Terminal)中输入以下指令:
cd pyserial-2.5
sudo python setup.py install
步骤4: 执行Python 2,在菜单中的'Programming'可以找到。
执行以上步骤后,我们便可以利用Python库存取串行口,以下的图片是有关的Python执行代码,是Arduino与Raspberry Pi通讯的主要程序。
import serial
ser = serial.Serial('/dev/ttyACM0', 9600)
我们的代码要在这两行代码后,第二行代码的'9600'代表串行通讯的波特率(Baud Rate),而'/dev/ttyACM0' 代表Arduino通讯的USB介面。要知道USB接口的名称,可以在不连接Arduino的情况下于终端器(Terminal)中输入以下指令,然后连接Arduino并且再次输入命令,若果你看到新的名称,那么这就是你所使用的接口名称:
ls /dev/tty*
以下的命令是主要用来读取Arduino传送的讯息和命令Arduino闪耀LED的次数。
ser.readline()
ser.write('5')
查看全文:
http://www.designspark.com/zh-ha ... pi-arduino-learning
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0