- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
开源硬件—让个人的想法发生
开源硬件—让个人的想法发生
引言
如果说软件代表了想法,那么硬件就代表了行动。将软件与硬件结合起来,
就可以“想干什么就去干什么”。
软件方面,由于计算机语言语法并不复杂,学习较容易,加之大量开源软件
的存在使得许多优秀软件设计得以快速被个体获取,学习与改造,因此个体在软
件创新上的入门门槛比较低,可以快速利用现有资源结合自身需要实现众多的功
能,如数学运算,图像识别等等。
硬件方面,个体创新的难度就比较大,现在的硬件制造几乎是大公司专利,
很少有公司会将其产品的设计原理,物料清单公布。因此个体很难改造公司生产
出来的产品,如打印机,空调等等。但是,许多情况下,个体具有更个性的想法
(比如,我想让空调以正弦函数形式升温),而个人的需求量达不到引起大公司
的兴趣,这个功能就无法实现。特别是科研人员,思维活跃,如果有一个快速实
现自己想法的硬件平台将可以大大促进个体创新的速度与高度。
这里介绍一款开源电子原型平台arduino: http://www.arduino.cc/。利用
这个平台,我们可以把具有特定功能的电子器件(传感器,电动机等等)变成积
木,在实现特定功能时只需要选择需要的积木,然后用导线把它们拼合起来。这
样,所有的电子器件就变成了可以用软件操纵的模块,剩下的就是写个软件,命
令它们干活。软件是我们的拿手好戏,更有趣的是,区别于通常的运行于电脑上
的软件仅仅能命令键盘,内存,屏幕干活,在arduino 上,我们可控的东西大大
扩展。个人能触及的事情也就大大丰富了。
相关硬件
区别于开源软件的零成本,虽然开源硬件的设计原理图是免费的,但是电子
器件是收费的,不过它们的价格很便宜,arduino 开发板外加一大堆传感器,电
阻,电动机什么的价格不超过200 元。具体商家这里就不提及了,大家可以上淘
宝非常容易地寻找到相关产品。
基本原理
所有东西都与电压,电流相关!arduino 的设计初衷就是易用,所以组装电
子器件的过程,与初中时设计一个电路点亮小灯泡的过程基本差不多。
图1 Arduino 的硬件连接
从图可以看出,arduino 是一个高度可扩展的硬件网络,而网络间的基本链
接就是导电线,当然如蓝牙,wifi,无线电等无线链接也是可以的。Arduino 的
魔力在于,这些硬件的加入非常简单(大多数情况下不需要焊接),而且所有加
入这个网络的硬件都可以方便地利用软件来操控(有相当多的现成库可以使用)。
开发软件
Arduino 的软件开发语言非常类似C++,可以认为是C++的一个简约子集。
它有自己的集成开发环境(Arduino IDE),最新版本及其对应平台可以在这里
下载到http://arduino.cc/en/Main/Software#toc1。
软件界面如下:
开发流程
这里以实现一个发光二极管的闪烁为例,介绍一下开发流程。
1. 软件代码
Arduino 自带有丰富的示例小程序,涵盖传感器的使用,通信,显示等等,如下图
这里选取发光二极管的闪烁 (Blink)的例子,简单介绍下arduino 使用的编程语言与一
个基本项目的软件结构。
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
//注释规则与C++一致,跨行注释/* xxx */,单行注释 // xxx
// Pin 13 has an LED connected on most Arduino boards.
// 针脚:可以理解为接头,arduino 为了方便链接,将接口设计为一方为尖针,
// 一方为空洞,这样链接设备就仅仅需要插好接口就行了
// give it a name:
// 将编号为13 的针脚存入变量led,方便记忆
int led = 13;
// the setup routine runs once when you press reset:
// 程序的初始化,初始化那些只需在程序启动时运行的代码,比如默认参数,
// 设备检查等等。
void setup() {
// initialize the digital pin as an output.
// 一个针脚可以具有两种属性:
原创力文档


文档评论(0)