极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20397|回复: 9

利用Arduino和Raspberry Pi 学习电子编程

[复制链接]
发表于 2012-9-18 13:54:31 | 显示全部楼层 |阅读模式
本帖最后由 弘毅 于 2012-11-20 17:54 编辑

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')


Arduino和Raspberry Pi的桥梁 - Ponte


由于Raspberry Pi只有2个USB接口,直接以USB接口连接Arduino跟Raspberry Pi的话,在开发方面会浪费了这个USB接口,所以外国的Raspberry Pi用家正在开发名为Ponte 的电路板,除了用来连接Arduino和Raspberry Pi外,亦可以连接Arduino扩展板和Raspberry Pi,这个过程不需要用到USB接口。软件方面,他们推荐使用WiringPi,WiringPi提供了C、Ruby和Python版本。硬件方面,他们亦提供了现时的电路图设计和电路布线图。当原型产品成熟后,他们会以开放源硬体项目发放Ponte电路板。


图. Ponte 电路图设计




图. Ponte 电路布线图


ARDX Arduino 初学者工具包


介绍了一些Arduino与Raspberry Pi的通讯方法后,我们看看现时的开发者会利用这两个开发平台作什么用途。


上图是Seed Studio提供的ARDX Arduino 初学者工具包,内里提供了十三个不同的教学应用,例如LED闪耀、马达控制、 伺服电动机控制和继电器控制等。当你能够对Arduino进行基本的操作后,可以利用不同类型的扩展板作一些进阶的应用,例如LCD控制和GPS应用等。


Raspberry Pi的Arduino集成开发环境




如果大家在Raspberry Pi中安装的影像是Raspbian的话,可以使用内置的Arduino集成开发环境编写和上载程序到Arduino,上图是Arduino和Raspberry Pi的连接实况。




而Raspberry Pi则连接到12吋的旧式Phillips电视机,除了高清显示器的支援外,Raspberry Pi亦支援旧式的显示器。就是这样的设置,我们就能够同时学习电子编程和应用程式编程了。




这样的开发环境只要加上WiFi 存取器和手提充电器,便可以在需要的时候存取WiFi网络并下载代码、更新程式,其余的时间便可以专注于Arduino和Raspberry Pi的开发,传统个人电脑的需求亦大大减少。


总结


Arduino的庞大社群支援和多样化的扩展板对于Raspberry Pi的开发十分重要,希望大家能够建立两个平台的通讯后,多设计一些有关Raspberry Pi的应用程式。



查看原文(带图):http://www.designspark.com/chn/b ... erry-pi-programming

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-9-22 14:00:23 | 显示全部楼层
不错,可是不太了解,都是单片机啊
回复 支持 反对

使用道具 举报

发表于 2012-9-24 18:29:09 | 显示全部楼层
感觉帖子中有图。。。。。咋就没有呢?一次都没有
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-25 13:02:59 | 显示全部楼层
太行摄狼 发表于 2012-9-22 14:00
不错,可是不太了解,都是单片机啊

最近比较热门的开发板
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-25 13:03:31 | 显示全部楼层
迷你强 发表于 2012-9-24 18:29
感觉帖子中有图。。。。。咋就没有呢?一次都没有

贴图比较麻烦,有链接可以查看原文
回复 支持 反对

使用道具 举报

发表于 2012-9-25 17:19:51 | 显示全部楼层
期待已久的好资料,已经下载Python2.7.2以及相应的库 pySerial (目前最新的还是2.5 )。Python没有接触过,但是资料很丰富。

长假期间可以好好玩玩了。谢谢楼主。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-28 14:36:08 | 显示全部楼层
沧海笑1122 发表于 2012-9-25 17:19
期待已久的好资料,已经下载Python2.7.2以及相应的库 pySerial (目前最新的还是2.5 )。Python没有接触过, ...

不客气,可在在我们的主页上做技术提问,或者分享你的设计心得
回复 支持 反对

使用道具 举报

发表于 2012-10-8 20:55:19 | 显示全部楼层
刚接触rasperryPy没多久,手上有RPY但是今天又看到了关于Arduino的资料,很好奇,请问Arduino与RaspberryPy之间的通讯速率是不是就完全由串口的波特率限制了呢?这样的话可以达到多大的速率呢?想买Arduino的话推荐买哪些工具呢?有相应的链接吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-10 16:32:41 | 显示全部楼层
skyfisch 发表于 2012-10-8 20:55
刚接触rasperryPy没多久,手上有RPY但是今天又看到了关于Arduino的资料,很好奇,请问Arduino与RaspberryPy ...

相关的技术问题可以去http://www.designspark.com/zh-hans/home 工程师交流网站上提问!会有我们的工程师为你解答.
至于购买可以去这个页面看一下http://hongkong02.rs-online.com/ ... lay.html?id=arduino 里面还会有Aduino的教学视频可以观看并持续更新中,说不定你就可以知道要配备哪些套件了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-20 16:38:08 | 显示全部楼层
旧的连接不见了,新的连接已更新!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 23:06 , Processed in 0.051279 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表