文档内容
PUTONG GAOZHONG JIAOKESHU 普 普通高中教科书
通
XINXIJISHU
高
中
教 信信息息技技术术
科
书
信信
息息
选择性必修 6
技技
术术
开源硬件项目设计
选
择
性
必
ISBN 978-7-5428-7415-3
修
6
ISBN 978-7-5428-7415-3 开
9 787542 874153>
源
硬
件
项
9 787542 874153>
目
设
计
普通高中教科书
信息技术 选择性必修6
开源硬件项目设计
上海科技教育出版社有限公司出版发行
普通高中教科书
(上海市闵行区号景路 弄 座 楼 邮政编码 )
信息技术 选择性必修6 159 A 8 201101
湖南省新华书店经销 湖南长沙鸿发印务实业有限公司印刷
开源硬件项目设计
开本 印张
上海科技教育出版社有限公司出版发行 I8S9B0N×197284-07-5142/186-7415-3 6
年 月第 版 年 月第 次印刷
(上海市闵行区号景路 弄 座 楼 邮政编码 ) 2021 1 1 2021 12 3 上
湖南省新华书店经销 湖 1 南 59 长沙 A 鸿 8 发印务实业有 2 限 01 公 10 司 1 印刷 ISBN978-7-5428-7415-3/G·4353 海
定价: 元 科
开本 890×1240 1/16 印张 6 批准文号:湘发改价费〔 7 〕 .88 号 举报电话: 技
年 月第 版 年 月第 次印刷 9 7872504127837443153> 12315 教
2021 1 1 2021 12 3 育
ISBN978-7-5428-7415-3/G·4353 出
定价: 元 此书如有印、装质量问题,请向印厂调换 版
7.88
批准文号:湘发改价费〔 〕 号 举报电话: 印厂地址:长沙黄花印刷工业园三号 电话: 社 上海科技教育出版社
2017 343 12315 0731-82755298
此书如有印、装质量问题,请向印厂调换
印厂地址:长沙黄花印刷工业园三号 电话:
0731-82755298
普通高中教科书
信息技术 选择性必修6
开源硬件项目设计
上海科技教育出版社有限公司出版发行
(上海市闵行区号景路 弄 座 楼 邮政编码 )
159 A 8 201101
湖南省新华书店经销 湖南长沙鸿发印务实业有限公司印刷
开本 印张
890×1240 1/16 6
年 月第 版 年 月第 次印刷
2021 1 1 2021 12 3
ISBN978-7-5428-7415-3/G·4353
定价: 元
7.88
批准文号:湘发改价费〔 〕 号 举报电话:
2017 343 12315
此书如有印、装质量问题,请向印厂调换
印厂地址:长沙黄花印刷工业园三号 电话:
0731-82755298普通高中教科书
信息技术
选选择择性性必必修修 56
开源硬件项目设计
上海科技教育出版社编写人员名单
主 编: 郑 骏
分册主编: 季 隽
主要编写人员(以姓氏笔画为序):
刘 帅 胡 杨 傅 瑛
欢迎广大师生来电来函指出教材的差错和不足,提出宝贵意见。
上海科技教育出版社地址: 上海市闵行区号景路 弄 座 楼
159 A 8
邮政编码:
201101
联系电话:
021-64702058
邮件地址:
office@sste.com写给学生的话
亲爱的同学:
大众创业、万众创新的时代已经到来,创客文化正蓬勃发展,
基于开源硬件的创新作品如雨后春笋般不断涌现。利用 Arduino 和
树莓派等开源硬件,即便不具备深厚专业知识的你,也能成为设计
开发者,提高基于信息技术的创新能力。
在《开源硬件项目设计》的学习中,我们将带领你通过剖析真
实的开源硬件作品来了解开源硬件的功能和特征;从简单项目入手,
体验开源硬件项目设计的一般流程;通过设计开发贴近生活的项目
作品,理解和应用开源硬件实现信息输入、处理和输出的方式。在
项目实践过程中,你将学会综合运用科学、技术、数学、工程及艺
术等学科的知识解决问题。
为了让你在学习《开源硬件项目设计》的过程中获得更大的成
功,请浏览本书的栏目介绍。
单元引言、学习目标和单元挑战
从生活经验出发引入本单元将要学习的内容,提出本单元学习
要达成的学习目标,预告学习完本单元后要接受的单元挑战。
项目引言和学习目标
描述项目产生的背景和意义,介绍项目学习的主要内容,并提
出一些具体问题,引导你带着问题探究。
项目学习指引
通过剖析真实的项目实施过程,帮助你了解学科思想方法,理
解相关概念,掌握具体技能。
核心概念和小贴士
解释一些重要概念和术语,或提示相关知识和技术,帮助你抓
住重点,扫除认知障碍。?
?
思考与讨论
提出若干问题引导你对技术背后的原理以及人、信息技术与社
会的关系等进行思考和讨论。
数字化学习
引导你利用网络、数字化工具和数字资源进行学习。
活 动
提出活动任务,并引导你运用所学知识,使用信息技术工具进
行探究、总结和展示。
知识链接
系统整理和归纳本项目的知识要点,方便你学习。
拓展阅读
补充更丰富的阅读材料,开阔你的视野。
单元挑战
布置面向真实情境的项目任务,希望你综合运用本单元所学的
知识与技能去解决问题。
单元小结
用思维导图可视化呈现本单元的知识脉络,提供基于学科核心
素养的评价表,为你的学习表现进行自我评价。
在学习过程中,希望你勤实践体验、多思考讨论,借助各种数
字化工具、资源进行学习与创新,不仅要理解和掌握具体的信息技
术知识与技能,还要把握用信息技术解决问题的思想方法,并思考
将信息技术应用于社会时所引发的各种挑战,以开放、包容的心态
与信息技术、信息社会一起进步。
编 者目 录
第一单元 开源硬件与信息技术创新 .............................................................................
1
项目一 探究开源硬件作品——了解开源硬件的特征和价值 ....................................
2
认识开源硬件 ..................................................................................................
1. 3
了解常见开源硬件的功能 ................................................................................
2. 5
探究开源硬件的价值 .......................................................................................
3. 7
知识链接 ...........................................................................................................
10
项目二 设计制作交通信号灯——了解开源硬件项目设计的一般流程 ....................
14
提出想法 ........................................................................................................
1. 15
设计系统解决方案 .........................................................................................
2. 16
利用开源硬件实现解决方案 ..........................................................................
3. 20
知识链接 ...........................................................................................................
22
单元挑战 设计制作小夜灯.......................................................................................
27
单元小结 ....................................................................................................................
28
第二单元 基于开源硬件的信息系统 ...........................................................................
29
项目三 设计制作低头报警器——实现数据的输入、处理与输出 ...........................
30
提出想法 ........................................................................................................
1. 31
设计基于开源硬件的信息系统 ......................................................................
2. 31
实现数据的采集、运算处理和输出 ...............................................................
3. 37
知识链接 ...........................................................................................................
40
项目四 设计制作自行车里程仪——体验作品的迭代优化.......................................
44
提出想法 ........................................................................................................
1. 45
设计符合事物特性的系统 ..............................................................................
2. 45
实现作品设计方案及其优化 ..........................................................................
3. 51
知识链接 ...........................................................................................................
56
单元挑战 设计制作创意风扇...................................................................................
59
单元小结 ....................................................................................................................
60
第三单元 开源硬件项目设计与开发 ...........................................................................
61
项目五 设计制作智能园艺装置——体验无线数据传输 ..........................................
62提出想法 ........................................................................................................
1. 63
设计基于无线数据传输的系统 ......................................................................
2. 64
实现数据的采集及无线传输 ..........................................................................
3. 70
知识链接 ...........................................................................................................
71
项目六 设计制作无人船模型——利用输出数据驱动执行装置 ...............................
74
提出想法 ........................................................................................................
1. 75
根据应用情境设计系统 .................................................................................
2. 76
实现数据驱动的动力控制 ..............................................................................
3. 81
知识链接 ...........................................................................................................
84
单元挑战 设计制作远程快递收件盒 ........................................................................
87
单元小结 ....................................................................................................................
88
附录 部分名词术语中英文对照 ....................................................................................
89第一单元
开源硬件与信息技术创新
我们正处在一个开放创新的信息社会中,信息的获
取与分享变得与每个人息息相关。所有的人既是信息分
享的受益者,也是集体智慧和信息的贡献者;既是产品
的受益者,也是产品设计或改进的参与者。
随着信息技术的发展,近年来涌现出一大批开源硬
件,它们降低了产品开发的复杂度,使人们不用花费大
量时间去了解硬件的底层控制细节,从而能集中精力于
设计和创造。基于开源硬件,从工程师到技术爱好者、
艺术家,甚至年龄很小的学生,都能很方便地根据自己
的设想或创意,制作出具备一定功能的信息系统,用信
息技术实现创新。
在本单元中,我们将剖析一些基于开源硬件的作品
实例来认识开源硬件,了解其功能和特征;通过动手设
计制作一个简单的开源硬件作品,体验使用开源硬件搭
建信息系统的过程。
单元挑战
学习目标 设计制作小夜灯
◆ 认识开源硬件的特征与发展。
◆ 了解常见开源硬件的功能和特征。
◆ 理解利用开源硬件进行信息技术创新的意义。
◆ 体验基于开源硬件项目的设计制作基本流程。
◆ 践行开源与知识分享的精神,理解保护知识
产权的意义。项目一
探究开源硬件作品
——了解开源硬件的特征和价值
技术的发展使得创新的方式发生了深刻的变化,尤其是近年来
因得益于开源硬件的流行,创新作品的品种及数量、产品产生的速
度和频率、甚至质量等都在不断地提高。开源硬件正是创新的助推
器,它所特有的开放、共享理念,让人们能够更便捷地获取和交流
信息,如硬件装置的设计说明和使用说明、作品设计文件、项目灵
感和创意等。在这样一种协同和共享的环境中,人们能以较低的成
本支撑创新,作品的开发周期大大缩减,从而提升了作品的竞争
力(图 )。
1-1
那么,究竟什么是开源硬件?开源硬件具有哪些特征和功能?
它是如何驱动创新的?
图1-1 开源硬件带来的影响
项目学习目标
在本项目中,我们将结合一些案例了解开源硬件及利用开源硬
件进行信息技术创新的意义。
完成本项目学习,须回答以下问题
:
什么是开源硬件?
1.
常用开源硬件有哪些?
2.
开源硬件是如何驱动创新的?
3.
开源与保护知识产权矛盾吗?为什么?
4.第一单元 开源硬件与信息技术创新
项目学习指引
认识开源硬件
1.
核心概念
开源一词最初出自软件开发中。开源软件(
open source
)是指源代码开放的软件,它能够被自由地使用、修 开源硬件(
software open source
改和分发。人们所熟悉的、用于移动设备的 (安卓) )是指通过公开渠
Android hardware
操作系统就是一款基于 的开源软件。
道,用户可获得硬件的设计
Linux
文件,并对它们的设计进行
开源硬件由某一团队或个人设计并开发,开发完成后,
学习、修改、发布和制作。
开发者将该硬件的文件对大众免费开放,包括设计图、开发
它的本质是共享硬件的设计
软件、开发文档、材料清单等,世界上任何人都可以对其进
文件以方便他人进行修改或
行加工、修改、重新设计、生产甚至销售。 据其制作硬件,甚至包括用
随着相关文件的公开和免费分享,开源硬件逐渐吸引各类 于商业用途。
爱好者和应用者。这些爱好者、学习者,甚至技术开发人员等,
都可以方便地加入到开源硬件的应用及开发中来。各类人员
参见 知识链接“开
P10
的加入,不仅丰富了开源硬件的功能,他们分享的创新方案、 源硬件及其发展”
新作品给人们带来更多的创新和创意。这群具有共同爱好和
兴趣的人聚集在一起交流思想和经验,分享彼此的创意和创
小贴士
新设计,慢慢发展形成一个开放、分享的平台——开源社区。
开源硬件在这种开放和分享的氛围中激发了人们的创新活力, 理想情况下,开源硬件
同时自身也得到持续发展(图 )。 要公开并分享所有的设计文
1-2
件,以最大化提高他人利用
的效率。
向大众免费开放
●硬件电路设计图 ●制作复制权限
●开发软件 ●……
●开发文档
原创的开源硬件
技术的发展 爱好者、技术人员等加入
需求的增加 …… 小贴士
开源社区(
open source
)由一群具有共同
community
爱好的人组成,在社区(线
上或线下)中,人们可以获
得他人的研究成果,同时也
可以将自己的创意或研究成
果等分享出来,供他人查看
和使用。它是一个自由交流
开源社区 思想和创新成果的地方。
图1-2 开源硬件与开源社区
3开源硬件项目设计
开源精神主张贡献和分享,但这并不表示开源硬件可以
参见 知识链接“开
P11
源硬件的开放与共享” 被任意使用而不受知识产权的保护。各种开源协议在一定程
度上保护了开源硬件原作者的知识产权,赋予原作者在其
作品及派生作品的传播过程中拥有包括复制权、修改权和发
数字化学习
行权等不同的权利。因此,在使用他人的开源硬件时,应遵
上网查找目前主流的开 循原作者采用的许可要求,让后续的使用者知晓原作者和相
源协议( ), 关修改者,以及获得该硬件设计文件的途径等信息。通用
open source license
了解它们的使用注意事项或
公共授权( ,简称 )和知识共享
约束。 General Public License GPL
( ,简称 )是人们熟悉的现有许可。例如,
Creative Commons CC
的硬件设计文件使用的是 许可,软件则使用的是
Arduino CC
许可。
GPL
?
?
思考与讨论
小贴士
开源软件等同于免费软件吗?为什么?
1.
开源硬件与开源软件有哪些不同?
是一款便捷灵
2.
Arduino
活的开源电子原型平台,包
含硬件(各种型号的
Arduino
开发板)和软件( 目前较为典型、应用较为广泛的开源硬件有 和
Arduino Arduino
。 (中文名称为树莓派)。
IDE)
Raspberry Pi
开发板有多种
由于 的创造者们公开了 的硬件设计图
Arduino
型号,除应用最广泛的 Arduino Arduino
UNO 和软件程序代码,任何人都被允许生产电路板的复制品,还
板,还有体积更小的 、
Nano 能重新设计,甚至销售原设计的复制品。于是越来越多的人
接口更多的 等型号。
Mega
加入 的改进工作中来,甚至一些大公司也发布了其
Arduino
他版本的 产品。 发展至今,已经有了多种型
Arduino Arduino
号,每种型号都各有特点。图 简单列举了几种有代表性
1-3
的 型号。
Arduino
Serial Pro Mini UNO Mega 2560
● 年发布 ● 年发布 ● 年发布 ● 年开发
2005 2008 2010 2010
●最早应用 ●体积较小,适合需要焊 ●官方标准版,用 ●有更多的内存和引
RS-232
串口的开发板 接并永久安装的场合 户友好性最好、使 脚,提供更多的功
用最广泛 能和更好的性能
图1-3 几种有代表性的Arduino型号
4第一单元 开源硬件与信息技术创新
?
?
思考与讨论
数字化学习
在世界范围内得以广泛应用的原因
Arduino
是什么? 上网搜索或到开源社区
查找资料,总结归纳开源硬
件的特征。
活 动
选择一种开源硬件开展调查,并回答问题:
1.1
( )允许任何人研究、修改、发布、制作和销
1
售该硬件吗?
( )该硬件提供可公开访问的设计文件吗?是
2
免费的吗?
( )如果不是所有零件或文件都开放的话,能
3
明确指出设计的哪些部分是作为开源硬件发布的,
哪些部分不是作为开源硬件发布的吗?
( )未经许可能否使用原公司的商标?
4
调查树莓派的各种型号及其发展关键事件,
1.2
并制作其发展历程时间轴。
了解常见开源硬件的功能
2.
和树莓派等开源硬件的功能是完成信息的输入、
Arduino 参见 知识链接“常
处理及输出,适用于构建需要和物理环境交互的小型信息系 P11
见开源硬件的功能”
统,它们是实现信息技术创新的重要途径。例如,某同学设
计的“飞屋”,其控制系统就是以开源硬件 为核心
Arduino
的信息系统。“飞屋”制作、演示现场如图 、图 所示。
1-4 1-5
图1-4 “飞屋”制作现场 图1-5 “飞屋”升空
5开源硬件项目设计
“飞屋”是某高中科技节上用于传送获奖名单的装置。
利用开源硬件 板来控制它的飞行,使它可随
Arduino UNO
着音乐节奏调节飞行的速度。
如图 所示,整个“飞屋”信息系统由飞行指令发送
1-6
装置、指令接收与执行装置这两个子系统组成,两个装置均
由信息输入、信息处理、信息输出三个部分组成。无线模块
在其中起到信息传输的作用,通过无线传输方式将两个装置
(子系统)的输出和输入相连。
小贴士
在设计和制作“飞屋”
作品的过程中,会遇到工程、
技术、数学、科学和艺术等
多方面的挑战。
工程:飞行的最大距离
能够达到多少?最长的滞空 飞行指令发送装置
时间是多少?
技术:用什么技术处理
信息系统中的数据?
数学:怎样通过算法来
消除遥控杆输入数据时产生
的噪声?
科学:气球灌装多少气
体可以达到起飞拉力?气体
指令接收与执行装置
为何会从气球中泄漏,如何
防止或减缓泄漏?
图1-6 “飞屋”信息系统
艺术:怎样设计“飞屋”
的造型能使其既美观又不影
响性能?
飞行指令发送装置将操控动作通过遥控杆转变为电压变
化,经由发射端微控制器处理后输出到无线模块,再通过其
发送出去。在指令接收与执行装置中,接收到的无线信号作
为输入信息,经接收端微控制器处理,输出控制信息,控制
执行装置的运行。
通过以上分析可知,开源硬件 板在系统中
Arduino UNO
起着接收控制信息、处理信息并输出信息来驱动执行装置的
作用,它是整个信息系统的核心。
6第一单元 开源硬件与信息技术创新
活 动
在开源社区中查找某一开源作品或项目,查看其分享的设计文件,了解
1.3
开源硬件在其中的功能,并参考“飞屋”案例,简单绘制它的信息系统组成草图。
然后,在学校里建立一个分享社区(线上线下均可),供同学之间分享开源作
品及相关知识和创意等。
有人认为,开源软件和开源硬件是公开、免费的,不受知识产权保护,
1.4
这种观点对吗?在班级里围绕“开源硬件是否受知识产权保护”展开讨论。
探究开源硬件的价值
3.
现今,创新不再是少数人的专利,人人都可利用信息技
术和身边容易获得的材料、开源硬件等来实现创新,开源硬
件促进了发明者、制造商、学者和企业等的合作创新。
利用开源硬件开展的信息技术创新项目和作品有很多,
涉及的领域也很广泛,既有科学家和工程师为解决现实问题
而制作的产品,也有普通中学生实现个人想法的作品,它们 小贴士
都体现了开发者的创新精神。这些创新作品大多分享在开源
尽管开源社区是一个开
社区中,供他人查看或使用。
放共享的场所,但使用过程
作品一:开源无人机 中须遵守相关的开源协议及
网络安全要求,做信息社会
的合格公民。
图1-7 开源无人机
●产品创意:开源减灾制图飞机,如图 所示。
1-7
● 应用情境:当灾害发生时,需要快速绘制出灾情图,
以便使援助物资快速、准确地送达受灾点和人群中。但一般
灾害现场往往伴随有交通堵塞、通信中断等情况,无法借助
常规手段及时有效了解灾情。
7开源硬件项目设计
● 价值:这是一款廉价、专门用来绘制灾害地图的开源
无人机。它利用计算机视觉等技术识别地形和人,测量天气、
小贴士
烟雾及放射性数据,并将测得的数据上传到开源制图平台中。
基于开源硬件的项目横
它使用开源硬件,确保世界上任何人都可以使用或改进这款
跨众多行业,包括工业机械、
无人机及其搭载的各种传感器来收集数据,帮助减灾。
农业、环境测绘、救灾、太
空探索、生物技术、交通、 ● 使用的开源硬件:使用开源飞行控制器 来实
Ardupilot
教育、可持续性能源和机器 现自动平飞、保持航向等功能;使用基于 的传感器
Arduino
人等。人们利用开源硬件进 收集数据;使用树莓派处理收集到的数据。
行创新时,都会将他们的创
作品二:仿生手
意和与创新作品相关的资料
文件分享出来,自觉践行开
源的理念和知识分享的精神。
图1-8 仿生手
小贴士
● 产品创意:使用 打印机轻松制作低价、定制的仿
在创新者和爱好者的推 3D
生手,如图 所示。
动下,开源 打印机近年
1-8
3D
来得以蓬勃发展,它们常被 ● 应用情境:借助仿生手,一些截肢的残障人士可以抓
用来打印定制个性化的机器 取各种日常生活物品,从而拥有一定的生活自理和工作能力。
零件,甚至进行小规模生产。 ● 价值:贫困家庭,尤其是成长过程中需要频繁更换仿
生手的残疾儿童家庭迫切需要一款经济实用的仿生手。开发
团队利用开源的 打印机为截肢的残障人士提供低价、可
3D
自定义的仿生手。他们在网站上开放仿生手的设计图、电路
图、代码甚至制作的教学视频等,供需要者免费获取并自行
购买材料或利用 打印机按照自己的尺寸制作。
3D
● 使用的开源硬件:使用 来控制仿生手,使用
Arduino
开源 打印机制作手指、手掌等。
3D
8第一单元 开源硬件与信息技术创新
作品三:小车“巡逻兵”
小贴士
的计算速度不
Arduino
图1-9 小车“巡逻兵”
足以处理照片、视频等信息
量大的数据,此外它无法连
●产品创意:小车能避开障碍物行驶,间隔固定时间(开
接 摄像头,因此,制作
USB
发者设定)拍摄照片,实现自动“巡逻”,如图 所示。 开源无人机、小车“巡逻兵”
1-9
● 应用情境:某高中生外出旅游时,十分担心家里的安 时,还需要借助像树莓派这
类数据处理能力更强大的开
全,于是设计制作了一个“巡逻兵”。他在一辆能够自动避
源硬件。
障的小车上安装摄像头,让小车在家里自由行驶,每隔
10
秒自动拍摄照片,并将照片上传到 服务器,这样无论
Web
身处何处都可以通过手机了解家里实时情况。
●价值:帮助实时监测家里的安全。 数字化学习
● 使用的开源硬件:使用 控制小车的运行,使
Arduino 生活中的各种智能设
用树莓派控制摄像头拍摄照片并上传。
备,如智能灯、智能洗衣机
以上这些作品非专业人士也能实现,因为开源硬件降低
等均内嵌了微控制器,打开
了人们使用的门槛和项目作品开发的复杂度,在一定程度上 配套资源,了解微控制器的
突破了专业领域的围墙。人们可以根据自己的意愿设计制作 广泛应用实例。
具备一定功能的信息系统,甚至年龄很小的学生,即便不具
备非常专业的知识,也可以成为设计者和开发者。基于开源
硬件的作品的设计制作,亦可看作是充分利用各种信息技术
和其他学科的知识来进行创新的跨学科探究活动。
活 动
在开源社区中查找一些有创意的项目作品,并在班级内分享。
1.5
用文字描述一个创意设想,然后用草图描述其主要功能。另外,请简单
1.6
列举可能需要哪些材料、技术、知识、工具来实现这个创意设想。
9开源硬件项目设计
知识链接
开源硬件及其发展
1. 开源硬件
开源硬件是可以通过公开渠道获得设计文件的硬件,任何人都可以对已有的设计进行
学习、修改、发布、制作和销售。理想情况下,开源硬件使用随处可得的电子元件和材料、
标准化制作过程、开放的基础架构、无限制的内容和开源设计工具,以最大化提高他人利
用该开源硬件的效率。
广义上说,开源硬件不仅限于电子硬件,还涵盖机床、车辆和医疗设备等更大范围的
产品类别。从这个意义上说,硬件指的是任何形式的有形产品,可能是机械设备、纺织品,
甚至建筑五金。
开源硬件使得人们可以自由地分享技术,通过开放交互设计来共享知识和产品化硬件。
越大程度地开放硬件的设计,包括设计使用的工具及工艺,就越能帮助尽量多的人使用该
硬件,例如制造、改进、销售,越能最大程度地体现该开源硬件的价值。
2. 开源硬件的发展
世纪 年代,随着大规模集成电路技术的出现,业余无线电获得较大的发展,
20 60~70
大批爱好者开始自己设计制作电台,并多以俱乐部或爱好者社区等方式来交流思想、分享
知识。
开源硬件概念的正式确立源自 年,一位无线电爱好者发起了“开源硬件认证计划”,
1997
其目的是允许硬件制造商自行认证他们的产品为开放的。该计划允许用户为设备更换操作
系统,同时确保即使制造商倒闭,仍能有人为设备编写新的软件。这一时期产生了不少开
源硬件项目,但由于生产成本过高,又无法通过规模生产来降低成本,因此发展一度深处
困境之中,大多数项目在一两年内就逐渐销声匿迹了。
进入 世纪,互联网的兴起使得硬件设计的分享更加方便,人们可以快速或全球化
21
采购工具和材料,加上开源软件的流行及一些企业利用开源软件取得的巨大商业成功、制
造工具的成本逐渐降低等,再一次刺激了开源硬件的发展。这一时期比较著名的项目有
、 等开源硬件开发平台项目, 、 等开源桌面 打印
Arduino Beagle Board Maker Bot Egg-Bot 3D
机项目等。特别是 等开源硬件开发平台的出现,使得电子爱好者 创客 们拥有了
Arduino ( )
可以通过设计、开发实现创意的简单、便宜的平台工具。
开源硬件项目蓬勃发展的同时,开源硬件组织也不断成熟,一些专业协会组织不断出
现,如 年成立的开源硬件协会( ,简称 )。
2012 Open Source Hardware Association OSHWA
相关组织与研究者也在着手从事开源硬件规范制定的工作。现今,开源硬件思想已渗透至
硬件设计的各个层面,很多开源硬件项目横跨不少行业,其中包括工业机械、农业、环境
测绘、太空探索和机器人等,开源硬件作为产业已经走上成熟发展的道路。
10第一单元 开源硬件与信息技术创新
开源硬件的开放与共享
开源硬件重视分享、透明以及工作的传承,开放与共享是其主要特征。人们可以使用
和制造其他人的开源硬件,或者在项目中采用其他人的部分甚至全部硬件设计方案。商业
化原因造就的技术壁垒使技术变得越来越不透明,硬件的透明性就变得愈发重要,而开源
硬件提供了一种物理形式上的信息自由。它意味着源文件可以很容易获得,从而得以复制
和发展作品。源文件可能包括原理图、代码和装配指南等。
正是因为开源硬件的开放与共享,人们有了更多机会去研究、使用并改进它们以开发
更多的项目。利用开源硬件交流平台或社区,可以方便地将自己的反馈、疑惑、想法、改
进建议等提交给发明者、有意改进或制造衍生品的其他人,这样可以非常迅速地进行创新。
互联网的兴起使得快速采购原型所需的材料和工具、便利迅捷地设计和制造作品成为
可能,推动了在线交流中心、在线知识中心的发展。借助互联网,偏远地区的人们也能快
速地交流信息,如分发设计文件、实时答疑解惑。随着全球各地越来越多开源设计文件被
分享,在开源硬件社区中产生了大量人与人协作和参与硬件研发的机会,这将进一步推动
开源硬件的创新和发展。
每种开源硬件都会提供硬件规格、编程语言参考指南、软件下载、基础实验案例等信息,
帮助使用者配置开发环境和查阅软硬件功能说明。
开源硬件社区中一般会有各种与开源硬件相关的讨论主题,如创意作品的来源、控制
程序的注意事项等。当前比较热门的主题有机器人(广义的机器人,包括自主控制的车、
飞机等)和家庭智能物联等。硬件相关资料的完整程度和用户在社区中的活跃程度,在一
定程度上反映了开源硬件的易用性。
常见开源硬件的功能
常见的开源硬件有 和树莓派,它们俗称开发板。开发板大体上由微控制器、
Arduino
供电接口、 接口、数字或者模拟引脚等部分组成,它的主要功能是接收、处理、输出
USB
信息。其中微控制器( )是开发板的核心部分,但其上的引脚较为细小,不
microcontroller
易连接外部器件,给使用带来极大的不便,于是人们通过印制电路板将这些引脚拓展出来
并加以标注,这也是它们俗称开发板的缘由。图 和图 分别展示了 板和树
1-10 1-11 UNO
莓派主要的引脚和接口位置,其中 板是 开发板众多型号中的典型代表。
UNO Arduino
接口 数字引脚 供电接口
USB
微控制器
微控制器
供电接口
接口
USB
模拟引脚
数字引脚
图1-10 UNO板 图1-11 树莓派
11开源硬件项目设计
●微控制器:进行运算并处理信息。
●供电接口:用于给开发板供电。
● 接口:用于连接计算机等设备。
USB
●数字引脚或者模拟引脚:用于读取或输出信息。
和个人计算机的 相比, 和树莓派的微控制器不仅含有计算单元,还集成
CPU Arduino
了很多其他模块,如 转换器、内存等,因而又被称为芯片上的计算机。如果将开源硬
A/D
件按信息处理能力的强弱来排列,就会发现, 代表了适合小数据量、单一任务的
Arduino
硬件,而树莓派代表了适合大数据量、多种任务的硬件。例如, 程序的每次改动
Arduino
都需要上传到微控制器的内存并重新启动,而树莓派更接近于个人计算机,加载操作系
统后可运行多个程序。它们分别采用了不同的技术规格和标准,表 给出了概要性的
1-1
比较。
表1-1 Arduino与树莓派的对比
硬件
Arduino 树莓派
比较维度
本质 开源硬件开发板 开源硬件开发板
操作系统 无操作系统 一般采用 作为操作系统
Linux
开发环境, 以 开发为主,兼顾
开发工具 Arduino IDE Python
简化的 程序设计语言 其他 下的开发环境
C++ Linux
应用领域 一般用于传感器和执行装置的控制 一般用于数据量较大的计算
除了 、树莓派,常见的开发板还有 : (图 )、 (图 )
Arduino micro bit 1-12 ESP8266 1-13
等,它们各有特色,应用领域各不相同(详见配套资源)。
图1-12 micro:bit 图1-13 ESP8266
12第一单元 开源硬件与信息技术创新
拓展阅读
开源硬件的公开文件
开源硬件社区定义了开源硬件,明确硬件产品的哪些部分必须有公开文件,以符合其“开
源”性质。设计一款开源硬件产品时,最好使用开源的设计工具和组件,及在本地可以找到的
标准材料和标准流程,以最大限度地方便产品的购买、使用者的制造及改进。设计师所共享和
记录工作的信息越多,就越有助于提高该产品的开放性,进而增大开源硬件社区采用该产品的
可能性。
对于一个结合了机械系统、电子元器件、硬件固件,并含有用户界面软件的复杂物理产品
而言,该硬件的文件包含多个层次的信息。这种分层的开源原则是要确保开源设计的每一部分
都可被复制。表 介绍的是与开源硬件设备共同发布的信息文件各个层级的相关标准。
1-2
表1-2 开源硬件设备的设计文件
开源硬件
包含内容 模型/图片类型 推荐文件类型
设计文件
物料装配、所使用的材料、 , , ,
机械设计 模型 .dxf .dwg .ai
外壳 2D/3D , 等
.pdf .3dr
电子原理图和 电子线路图标、电路板的物
图片 , , ,
电路图 理布局、电子元件列表 2D .pdf .jpg .gif .tiff
详细的部件列表、成本、数量、
物料清单 电子数据表格 , , ,
数据一览表 .pdf .xls .txt .csv
电路的物理布
印刷电路板的物理元件布局 文件 文件
局图表 Gerber Gerber
处理器的固件 微处理器的固件 源代码( 、 等) 文本或二进制
C Linux
用户界面的源 图形用户界面的源代码、驱
以任何编程语言写的
代码、 和 动、 ,以及软件在计算机 文本或二进制
API API 源代码
驱动 上运行的其他必备条件
有的项目可能不会包含上述所有层的信息。设计师还可以选择发布一些额外的设计文件来
帮助用户制造、使用或修改硬件设备,这些文件包括手册、照片、图纸、书面说明、使用场景
或其他可以帮助用户的解释类文件。
——摘自《开源硬件 ——创客实践指南》
DIY
13项目二
设计制作交通信号灯
——了解开源硬件项目设计的一般流程
开源硬件和现代信息技术提供了丰富的资源和快捷的方式,降
低了技术门槛和设计开发的复杂度,给予人们设计开发创意作品、
将自己的创意变为现实的机会。在开源硬件项目设计活动过程中,
人们可以洞察现实的世界,体验创造的乐趣;既是学习者,也是项
目的策划者、规划师和工程师。
虽然每个基于开源硬件的作品制作都有其独特的过程,但是利
用开源硬件进行项目设计的流程一般都要经历提出想法、设计系统
解决方案、实现解决方案的完整过程(图 ),都要遵循设计、
1-14
选材、组装、功能开发、测试、迭代优化等一系列步骤。在这一过
程中,需要的知识与技能可能涉及科学、技术、数学、工程甚至艺术,
它们往往不以系统性的面貌呈现,而是融入项目作品中,这就需要
制作者根据项目的需要,自主去检索、学习、研究。
图1-14 项目设计的一般流程
项目学习目标
本项目将尝试使用开源硬件 设计制作一个交通信号灯,
Arduino
体验开源硬件项目设计的一般流程,体验利用开源硬件从提出想法
到实现作品的完整过程。
完成本项目学习,须回答以下问题:
开源硬件项目设计的一般流程是什么?
1.
如何利用 编写、调试程序并将程序写入开发板?
2. Arduino IDE
如何连接开发板、 来搭建一个简单电路?搭建时有哪些
3. LED
注意事项?第一单元 开源硬件与信息技术创新
项目学习指引
提出想法
1.
交通信号灯(图 ,简称交通灯)在生活中具有非常 参见 知识链接“开
1-15 P22
源硬件项目设计的一般
重要的作用,它全天候为出行提供秩序保障。如果由你负责
流程”
设计与规划某交通灯,该如何实现它的自动控制呢?
小贴士
当前交通灯正朝着自适
应控制方向发展,即基于大
数据分析得出的建议,结合
图1-15 交通灯 路况的实时判断,动态调整
灯的亮灭时间,以最大效率
选择哪种灯来做交通灯合适?灯的亮灭规律是怎么样
利用道路资源。
的?又该如何控制?这是设计和规划交通灯必须要考虑的事
情。目前交通灯的控制基本采用的是定时控制,即控制红灯
和绿灯的亮灭时间。
某路口有 组交通灯,每组有红、绿两灯。以一组灯为例,
4
它的工作流程如图 所示。
1-16
图1-16 某交通灯的工作流程
绿灯亮 秒,熄灭时红灯亮起,持续 秒后熄灭,同
20 20 小贴士
时绿灯亮起,如此往复。
设置 秒时长是为了快
在本项目中,我们将模拟以上交通灯的工作模式,设计
1
速看到实验效果,缩短开发
制作一个交通灯作品,具体功能设想如下:
测试时间。
通电后,红灯亮起,绿灯熄灭; 秒后,绿灯亮起,红
1
灯熄灭; 秒后,绿灯熄灭,红灯亮起,如此往复。
1
15开源硬件项目设计
活 动
选择家附近或者学校附近的某一个路口,观察并记录该路口交通灯的种
2.1
类及灯的亮灭情况,包括灯的亮灭时间和先后顺序等。尝试提出含三个灯(红、
黄、绿)的交通灯设想。
设计系统解决方案
2.
( )初步设计
1
根据设想,可以用两个发光器件(能分别发出红色和绿
色的光)来模拟红、绿信号灯,在同一时刻呈现不一样的亮
灭状态,用于体现交通灯一红一绿交替亮灭的效果。交通灯
初步设计图如图 所示。
1-17
小贴士
微控制器是开发板处理
信息的核心部件。
图1-17 交通灯初步设计图
( )选择器件
2
●选择开发板
如何控制红、绿两灯按照指定的周期亮灭?这需要选择
合适的开发板来完成自动控制。
树莓派和 板可以实现同样的控制效果,但
Arduino UNO
各有特色。树莓派安装了 操作系统,可运行 、
Linux Python
等高级语言,适合较大量的数据处理,其外接引脚电压
C++
为 。 板(简称 板)使用简单,易于
3.3V Arduino UNO UNO
小贴士 操作且价格低廉,引脚电压为 且带电流保护。
5V
本项目选用 板作为作品的开发板,用于处理信息。
开发板上布满电路,
UNO
使用时手不要直接触摸它的 ●选择发光器件
中间部位,应用手指拿住它 发光器件有很多,如日光灯、白炽灯、发光二极管(
Light
的边缘。
,简称 )等。现实生活中,由于交通灯都
Emitting Diode LED
设在户外,需要承受季节的更替、风雨雷电、频繁的亮灭、
气温的剧烈变化等,目前大都使用亮度高、寿命长、稳定性
强且不易损坏的 。
LED
16第一单元 开源硬件与信息技术创新
本项目考虑的是模拟交通灯亮灭效果,不需要高亮度和
小贴士
大电流的器件,故选用 即可。
LED
●选择其他辅助器件 当给 加上一定的
LED
根据电路搭建的需要,还必须选择一些常用的电子零件、 电压时,它会发光。 有
LED
两个引脚,接入电路时,通
工具和导线,如色环电阻、面包板、跳线等。
常长引脚与电源的正极相
? ? 连,短引脚与电源的负极相
思考与讨论
连,中间加限流电阻,防止
过流烧坏。 实物如
选择器件时一般需要考虑哪些方面?有哪 LED LED
图 所示。
些注意事项? 1-18
( )可行性验证实验
3
根据设计方案,需要进行可行性验证实验:用开发板自
动控制一个 的亮灭。
LED 图1-18 LED实物图
●用开发板自动控制一个 的亮灭
LED
的亮灭是由其两端的电压差决定的。用开发板来控
小贴士
LED
制 的亮灭,就是通过开发板控制 两端电平的高低
LED LED 可行性验证实验是为
状态,使之每隔 秒亮灭一次。
1 了了解所选器件的使用方
实验步骤:
法及预想的实验结果能否
① 如果是首次在计算机上使用 ,那么要先 实现。
Arduino
安 装 的 集 成 开 发 环 境(
Arduino Integrated Development
,简称 )。 参见 知识链接“开
Environment IDE P23
② 使用 线连接计算机和 板,并在 里设置 源硬件的集成开发环境”
USB UNO IDE
端口。
COM
③ 根 据 图
小贴士
连接器件。
1-19
先将 引脚串 计算机与 开发
LED Arduino
联分压电阻,然 板通过 端口进行通信,
COM
首次使用,需要手动配置。
后正极插到 号
8 是 的简称,表
引脚,负极插到 GND Ground
示接地端或负极。
引脚。
GND
④ 在
Arduino
中编写程序,
IDE
控制 的亮灭。
参见 知识链接“面
LED
P25
程 序 包板的使用”
Arduino
框架分为两个部
图1-19 一个LED的控制电路图
17开源硬件项目设计
小贴士 分, 用于初始化工作, 是程序的主体部分。将
setup() loop() 8
号引脚的电平设为高( ),灯点亮,保持 秒后再设为低
程序采用的编 5V 1
Arduino
( ),灯熄灭,也保持 秒。程序循环执行 ,就出
程语言是简化的 。
C++ 0V 1 loop()
现 交替亮灭的效果。程序示意图如图 所示。
LED 1-20
参 见 知 识 链 接
P24
“ 程序的基本
Arduino
结构”
小贴士
在 编程中,只
Arduino
需要编写 和 两
setup() loop()
个函数,这两个函数均无返
回值,分别用于 程
Arduino
序的初始化部分和执行部
分。 函数一般放在程
setup()
序开头,用于设置一些引脚
的输入 输出模式、初始化
/
串口等,它只在通电或重启
时执行一次; 函数用于
loop()
执行程序,是一个永久循环,
其中的代码将被循环执行来
图1-20 控制一个LED亮灭的程序示意图
完成程序的功能,如读入引
脚状态、设置引脚状态等。
参考程序:
Arduino
通电后 执行一次,然后反复执行
// setup() loop()
小贴士 void setup()
{
在 的配套软件 将 号引脚设为输出
Arduino pinMode(8,OUTPUT); // 8
平台中,有一些系统默认的
}
常量。常见的如表 所示。 中的代码会循环执行,直到断电
1-3 //loop()
表1-3 常见的常量 void loop()
常量名称 说明 {
将 号引脚电平设置为高,灯亮起
代表输入 digitalWrite(8,HIGH); // 8
等待 毫秒( 秒),灯持续亮 秒
INPUT
delay(1000); // 1000 1 1
代表输出 将 号引脚电平设置为低,灯熄灭
OUTPUT
digitalWrite(8,LOW); // 8
代表高电平, 等待 毫秒( 秒),灯熄灭持续 秒
delay(1000); // 1000 1 1
HIGH 相当于
代表低电平 5V , }
LOW 相当于
0V
代表真或 ⑤ 点击工具栏的“上传”按钮, 先对编写的程序进
True 1 IDE
代表假或 行编译验证,验证语法无误后,将程序上传至 板。
False 0 UNO
18第一单元 开源硬件与信息技术创新
⑥ 查看实验结果,如图 所示, 每隔 秒闪烁一次。
1-21 LED 1
小贴士
确保开发板处于正常
工作状态的测试方法: 打
开 提供的范例程序,
IDE
将“ ”程序上
Blink an LED
传至 板,观察板上的
UNO
是否有规律地闪烁。
LED
图1-21 LED亮灭的实验结果
活 动
根据给出的实验步骤,完成 的可行性验
2.2 LED
证实验。小组交流各自实验中遇到的问题及解决办法,
并说说可行性验证实验的作用和意义。
( )详细设计
4
经过可行性验证实验,了解了如何通过引脚输出高、低
核心概念
电平控制 的亮灭。接着需要考虑如何将整个信息系统用
LED
到的器件全部连接起来,构成一个完整的系统,进一步完善 详细设计是对初步设计
交通灯的设计方案。 的进一步具体化,主要从硬
设计交通灯的详细方 件层面确定整个作品系统的
具体实现细节,包括器件使
案,需要明确各器件
用的引脚和连线方式。
各个引脚的连线。
本项目的详细设
计方案如图 所
1-22 8 7
示,两只 (红和
LED
绿)分别串联电阻后, 小贴士
红灯正极连到 号引
本案例使用的是 、
8
7 8
脚, 负 极 连 到 号引脚,其他数字引脚也可
GND
引脚;绿灯正极连到 以完成同样的功能。
号引脚,负极连到
GND GND
7
引脚。
图1-22 交通灯电路连接图
GND
19开源硬件项目设计
利用开源硬件实现解决方案
3.
( )制作原型
1
核心概念
利用选择的器件,连接电路,搭建交通灯的原型。原型
原型( )是在 搭建完成后(图 ),应反复确认各器件正负极是否连
prototype 1-23
新产品开发阶段所制作的模 接正确,只有确认无误后,才能接通电源编写程序。
型或实验电路,用来试验新
产品的功能、造型和材料。
小贴士
搭建原型的过程中,所
有器件必须断开电源,以免
烧坏器件。
图1-23 制作完成的交通灯原型
( )编写程序
2
根据交通灯的功能,先绘制程序示意图,然后编写程序。
本作品是通过改变引脚的电平状态来控制与其相连的
LED
亮灭的,程序示意图如图 所示。
1-24
数字化学习
编写程序时若遇到困
难,可打开配套资源,查看
并阅读参考程序。
图1-24 交通灯程序示意图
20第一单元 开源硬件与信息技术创新
( )测试及优化作品
3
小贴士
将编写完成的程序上传至开发板,然后测试原型能否呈
现预设的效果,即红、绿两个 每隔 秒闪烁一次,且 在信息系统的开发过程
LED 1
两灯交替闪烁。测试效果如图 所示。 中,各个阶段都要设置测试
1-25
环节。测试的主要目的是检
测数据处理的正确性、系统
功能的完整性等系统性能。
图1-25 交通灯测试效果
?
?
思考与讨论
如何改变两灯亮灭的时间间隔?
在班级里评价、交流各自的作品,关注新的设想和建议,
并据此优化作品。例如,生活中有些交通灯在绿灯变红灯
之前,绿灯会快速地闪烁几下,尝试通过改进程序,让作
品更加真实。又如,可以对作品进行造型设计,使之更美观、
实用。如图 是某同学用瓦楞纸制作立杆来架设的交 小贴士
1-26
通灯。
项目作品的评价可以从
创新性、实用性和解决问题
等不同角度做出判断。
图1-26 造型设计后的作品图
21开源硬件项目设计
活 动
完成交通灯的制作并进行优化。
2.3
( )根据给出的器件连接电路图搭建交通灯的原型。再参考给出的程序示
1
意图,编写交通灯的控制程序,并进行测试。
( )尝试对作品进行优化,将改进后的作品在班级内交流展示与评价,并
2
将最终完成的作品连同设计文件等分享到校园开源社区。
本项目设计制作的交通灯只有红、绿两盏灯,现实的交通灯一般是有红、
2.4
绿、黄三盏灯交替闪烁,能否在已完成的作品基础上加以改进,实现红、黄、
绿三盏灯交替闪烁的效果?(提示:只需要再使用 板的另一个数字引脚,
UNO
连入一盏黄色的 ,然后调整相应的控制程序即可。)
LED
知识链接
开源硬件项目设计的一般流程
开源硬件项目作品由电子硬件(开源)、控制程序和承载平台组成,如图 所示。
1-27
电子硬件(开源) 控制程序 承载平台
开源硬件
= + +
项目作品
图1-27 开源硬件的项目作品的组成
当有了一个有趣的想法,如何利用开源硬件将它变为实际的作品或装置?一般需要先
做一个初步的设计,把系统划分为若干个功能模块,然后选择适宜的器件动手实验去验证
每个模块的可行性,使设想逐渐变为可行的方案。根据初步设计及可行性验证实验的结果
设计系统方案(详细设计方案),最后制作原型或产品。作品制作完成后,在测试或展示
分享的过程中也许会产生新的想法或改进的方向,可以进一步尝试优化改进。
本项目就是照这样的流程完成了交通灯的设计与制作,如图 所示。虽然每个基
1-28
于开源硬件的作品设计制作都有其独特的过程,但一般来说,都需要经历提出想法、设计
系统解决方案和实现解决方案这一流程。
22第一单元 开源硬件与信息技术创新
图1-28 开源硬件项目设计开发的一般流程
除了流程总体上的循环迭代,其实设计制作过程中每前进一步,都需要回顾之前的步
骤,思考有哪些方面存在不足或可及时改进的地方。例如,完成可行性验证实验之后,应
反思初步设计是否合理,是否有更简单、可靠的器件等。这样不断往复迭代的设计,能够
较及时地发现错误并做出修正,从而提升开发效率和作品质量。
开源硬件的集成开发环境
1. Arduino IDE
本项目中使用的 是专门针对 开发的编程环境。它是一种集成开发
Arduino IDE Arduino
环境( ),将程序编辑、校验与编译、上传写入(将程序写入 开发板)等功
IDE Arduino
能集成在一起,极大地提高了开发效率。
开发板需要借助计算机来完成程序的编写和上传,因此要先连接开发板与计
Arduino
算机,确保计算机与开发板正确匹配。如图 所示,程序编写的整个过程大体分为三步:
1-29
①编写程序;②验证与编译;③将程序上传至开发板。
图1-29 程序的编写过程
23开源硬件项目设计
●编写程序:使用 程序开发工具编写程序的源代码。
Arduino
● 校验和编译:检查程序内容是否有错误(如拼写错误),并且把程序源代码翻译成
微控制器能够理解的形式(机器码),此翻译过程称为编译。
●上传:也称烧写,把编译完成的机器码程序写入微处理器的内存。程序上传完成后,
开发板将自动开始执行程序。
Arduino
安装和设置 的方法如下:
Arduino IDE
( )下载并安装 。下载 的 安装包,然后根据提示安装。 安
1 IDE Arduino Windows IDE
装过程中会提示要安装驱动,确认安装即可。
( )用 线将 开发板和计算机相连,观察屏幕右下角是否提示驱动安装
2 USB Arduino
成功。
( )双击图标启动 ,并在“工具”菜单中设置开发板的类型和端口号,见图 。
3 IDE 1-30
要注意的是, 开发板与不同计算机相连时,出现的端口号可能不同,故设置时要
Arduino
选择菜单项中的对应端口,如 板应选“ ”。
UNO Ardunio/Genuino UNO
2. 树莓派程序开发
树莓派本质上是一台简化了的微型计
算机,一般都安装了 操作系统。这
Linux
个操作系统自带标准的 语言开发
Python
环境,理论上可以将它用作 机(
PC personal
的简称)来编写并运行
computer Python
程序,但是实际上直接在树莓派上开发程
序的效率远不及常规 机。因此,开发
PC
树莓派程序时,通常先在 机上用类似
图1-30 设置Arduino开发板的类型和端口号 PC
的集成开发环境开发程序,然后
Pycharm
再将编写完成的程序上传到树莓派上运行。在这个过程中可能会遇到第三方库在树莓派上
不可用的问题,这是因为有些开源库只能在 机上安装。
PC
树莓派还有另外一种开发程序的方法,就是在树莓派上安装 的 版本操作
Windows IoT
系统,然后用微软的 和 编写并调试程序,最后通过网络将编写完成的程
Visual Studio C#
序自动上传到树莓派上运行。这种方法的优点是能在标准 机上编写程序,提升了程序
PC
开发的效率,还支持断点、单步等调试功能。
Arduino 程序的基本结构
开发板的程序遵循统一的结构和运行规则,这给编写程序提供了框架,降低
Arduino
了难度。当新建一个 程序文件时,会自动生成一些程序代码,中间有两个模
Arduino IDE
块分别是 和 ,它们将程序分成两个功能区,不同的功能区完成
void setup() {} void loop() {}
不同的控制任务。
下面以本项目的可行性验证实验——控制一个 的亮灭为例来说明程序的结构。
LED
24第一单元 开源硬件与信息技术创新
void setup()
{
pinMode(8,OUTPUT);
}
void loop()
{
digitalWrite(8,HIGH);
delay(1000);
digitalWrite(8,LOW);
delay(1000);
}
图1-31 程序与程序示意图的对应关系
如图 所示,在 函数中将连接 的 号引脚设置为输出,以控制
1-31 setup() LED 8 LED
的亮灭,这个操作只在通电或重启时执行一次,之后不再执行。在 函数中,有 条
loop() 4
语句,分别执行的操作是:
①将 号引脚电平设置为高,灯亮起。
8
②等待 秒,灯持续亮 秒。
1 1
③将 号引脚电平设置为低,灯熄灭。
8
④等待 秒,灯持续熄灭 秒。
1 1
由于 函数中的代码会被循环执行,所以在第④步执行完成后,将回到第①步继
loop()
续执行,程序不断循环, 呈现闪烁的效果。
LED
程序设计时,永久循环一般是要避免出现的,但在单片机或嵌入式系统中,这种永
久循环的程序结构十分常见。以家用燃气泄漏报警器系统为例,当电源打开之后,检测
系统中的程序不停地重复执行:探测有无可燃气体泄漏,发现异常则发出报警声……直
到关机。
面包板的使用
面包板用于连接各种器件,其优势在于避免焊接且易于改变器件的连线。由于板子上
面有很多小插孔,像极了面包,因此得名。如图 所示,面包板的结构分为上、中、
1-32
下三部分。上、下两部分是由两行插孔构成的窄条,中间部分由一条隔离凹槽和上下各
5
行的隔离插孔构成。
25开源硬件项目设计
这样结构的面包板,中间部分的每列都相通,不同列不连通;隔离凹槽划分形成的上
下两部分不连通,器件与跳线不能跨过隔离凹槽进行串联。
上窄条
隔离凹槽
中间部分
下窄条
图1-32 面包板
拓展阅读
开发板使用安全注意事项
开发板易受静电影响。出厂时,厂商通常会用 捏住开发板的两侧
防静电袋(外观呈褐色的半透明塑料袋)来包装。使
用开发板时,注意尽量不触碰开发板的引脚和焊接点,
可捏开发板的侧面,如图 所示的姿势。在气候
1-33
比较干燥的时节,手接触开发板前可先触摸一下金属
物体,放掉身体上的静电。
开发板还容易因短路而损坏。使用时,桌上不宜
有水、饮料等液体;开发板下方也不要放置金属导线,
图1-33 拿取开发板的正确姿势
最好垫一张白纸或塑料垫,以避免短路。
26第一单元 开源硬件与信息技术创新
单元挑战 设计制作小夜灯
一、项目任务
小夜灯在生活中十分常见,智能小夜灯(图 )
1-34
更是为生活提供了极大的便利。用开源硬件制作一个光
线柔和的小夜灯,夜幕降临时自动点亮,太阳升起或光
线足够强时自动熄灭,节能又便利。完成小夜灯设计制
作,并在班级内分享自己的作品和心得体会。
二、项目指引
以小组为单位,开展数字化学习,了解让灯随着
1.
外部光线的强弱变化而自动亮灭的控制方法。
图1-34 自动感应的小夜灯
每个小组根据收集到的资料,大胆提出设想,明
2.
确小夜灯的具体控制方法,完成小夜灯的初步设计。
依据初步设计,选择合适的开发板和其他器件,然后进行可行性验证实验并完成小
3.
夜灯的详细设计方案。
详细设计方案如下:
按照详细设计方案搭建原型,编写控制程序并测试小夜灯的预设功能能否实现。测
4.
试时,可人为模拟白天、黑夜的环境。
若经过测试,小夜灯功能能够实现,还可以对小夜灯进行造型设计,使之更加美观
5.
和方便使用。
三、交流评价与反思
每个小组在班级内交流展示自己的作品,并分享设计过程中遇到的问题及解决的办法。
每个小组可根据他人的评价等优化作品,并拍摄最终作品的图片或视频,将其与小夜灯的
控制程序等文件一起分享到校园开源社区。
27开源硬件项目设计
单单元元小小结结
一一、、主主要要内内容容梳梳理理
二二、、单单元元评评价价
评评价价内内容容 是达否成达情成况
了了解解开开源源硬硬件件的的特特征征与与发发展展(( 、、 、、 、、 ))
AA TT II RR
能能够够认认识识常常见见的的开开源源硬硬件件并并了了解解它它们们的的功功能能(( 、、 、、 ))
AA TT II
知知道道利利用用开开源源硬硬件件进进行行信信息息技技术术创创新新的的意意义义(( 、、 、、 ))
AA TT RR
能能够够认认识识开开源源硬特件征的并特理征解并保理护解知保识护产知权识的产意权义的(意)义( )
R R
能能在在开开源源社社区区或或网网络页上上查查找找开开源源案案例例及及其其相相关关信信息息,,开开展展数数字字化化学学习习(( 、、 ))
AA II
知知道道基基于于开开源源硬硬件件完完成成项项目目设设计计的制基作本的流基程本(流程)( )
T T
了了解解项项目目设设计计过制程作中过相程关中设相备关与设器备件与的器安件全的使安用全规使则用和规方则法和(方法、()、 )
A IA I
了了解解利利用用设设计计工工具具或或编编程程语语言言编编写写、、调调试试程程序序并并将将程程序序上写传入至开开发发板板的的方方法(法(、、、、))
TTIIRR
建建立立校校园园开开源源社社区区,,践践行行开开源源与与知知识识分分享享的的精精神神(( 、、 ))
AA RR
说说明明:: ——信信息息意意识识,, ——计计算算思思维维,, ——数数字字化化学学习习与与创创新新,, ——信信息息社社会会责责任任
AA TT II RR
28第二单元
基于开源硬件的信息系统
随着创新文化的发展,人们越来越感受到自制或改
造电子产品给生活带来的便利。例如,利用开源硬件读
取气象网站发布的天气数据,并显示在镜面上,这样早
晨起床洗漱时,就能了解当天室外气温、降水概率等信
息;利用开源硬件设计制作一个宠物自动喂食器,主人
外出时,就不用担心家里的宠物无人喂食了;利用开源
硬件和摄像头设计制作一个报警器,当独居老人跌倒时,
它便会报警提示家人或社区中心。
以上这些基于开源硬件的作品,本身都是一个小型
的信息系统,它们用传感器等输入器件完成信息的采集
输入,由微控制器完成信息的运算处理,最后将信息输
出或用于驱动执行装置工作。
本单元将带领大家从信息系统的角度来了解开源硬
件是如何实现数据输入、处理和输出的,并理解系统中
信息之间的调用关系;通过自行车里程仪的设计与制作,
了解开源硬件项目作品的优化方法。
单元挑战
学习目标
设计制作创意风扇
◆ 认识基于开源硬件的信息系统的基本结构,
明确各组成部分及其功能作用。
◆ 理解信息系统中信息输入、处理与输出三
者之间的调用关系。
◆ 通过设计制作自行车里程仪作品,了解开
源硬件项目的迭代优化方法。项目三
设计制作低头报警器
——实现数据的输入、处理与输出
基于开源硬件的信息系统(图 )能够借助传感器获取外界
2-1
环境的数据,经过一定处理后再输出到执行装置。这种从物理环境
读入数据,再以物理方式反作用于物理环境的特点,使得基于开源
硬件的信息系统能实现很多有趣的应用。
近年来的相关医学调查显示,青少年近视在一定程度上是由于
坐姿不端正引起的。但在学习过程中,青少年无法获取头部距离桌
面的高度数据,难以察觉自己的坐姿是否端正。能否利用开源硬件
设计制作一个低头报警器,帮助他们及时发现自己坐姿端正与否?
图2-1 基于开源硬件的信息系统
项目学习目标
在本项目中,我们将尝试利用开源硬件 设计制作一个
Arduino
低头报警器,了解开源硬件如何实现数据的输入、处理与输出。
完成本项目学习,须回答以下问题:
传感器在基于开源硬件的信息系统中的作用是什么?
1.
传感器读取的数据有什么特点?
2.
如何用开发板的输入引脚从传感器读取数据?
3.
开发板引脚输出数据有哪些方式?如何选用输出引脚?
4.第二单元 基于开源硬件的信息系统
项目学习指引
提出想法
1.
低头报警器的主要功能是当人们低头看书学习时,若头
部离书本过近,便发出报警信息,提醒人们及时纠正坐姿。
报警器如何测量头部与书本的距离?它可以用何种方式
来报警?发出声音、闪烁灯光、发送报警文字到智能手机或
计算机上……
头部与桌
本项目尝试设计制作的低头报警器一旦察觉人们坐姿不
面的距离
端正,头部(指眼睛,下同)距离桌面太近时(小于 )(图
35cm
),会发出“嘀嘀”的报警声,直到距离大于 ,才
2-2 35cm
停止报警。
图2-2 测距示意图
活 动
上网查找资料,了解目前常见报警装置的
3.1
应用情境及其检测数据,并完成表 的填写。
2-1
表2-1 常见报警装置的应用情境及检测数据
报警装置 应用情境 检测数据
设计基于开源硬件的信息系统
2.
( )初步设计 小贴士
1
低头报警器应该具备哪些组成模块才能实现低头报警的
低头报警器的基本功能
功能呢?从信息系统的基本组成来看,作品分为三大组成模 需求确定后,接下来的核心
块,每个模块有各自要实现的功能(图 )。在信息输入 问题是如何让测得的数据经
2-3
过处理后去驱动执行装置作
模块中,需要获得当前头部与桌面之间的距离信息,然后将
出相应的动作。
距离信息传输到微控制器进行计算处理,如果发现距离太近,
则让发声器件发出“嘀嘀”的报警声。
参见 知识链接“基
P40
于开源硬件的信息系
统基本结构”
图2-3 低头报警器初步设计图
31开源硬件项目设计
参见 知识链接“传 ( )选择器件
P40 2
感器” ●选择测距器件
本项目需要使用器件来检测头部与桌面的距离,完成信
息采集(即测距)的工作。从初步设计来看,测距工作需要
实时进行并能够自动完成。
自动测距的办法有很多种,常见的有超声波、激光、红
外线等。其中激光太亮,容易刺激眼睛;红外线易受到环境
光线的干扰,影响测量精度;超声波测距简单、安全,应用
便捷。因此,本项目选择超声波传感器(图 )来测量距离。
2-4
图2-4 超声波传感器
●选择发声器件
发声装置有很多种,其中扬声器、蜂鸣器比较常见且容
易获得,它们都有众多的种类和型号,能够与多种微控制器
小贴士
适配。对本项目而言,扬声器和蜂鸣器都是不错的选择。鉴
超声波传感器有两只
于蜂鸣器小巧、耗电量小、价格便宜、不易损坏且易于用微
“眼睛”,一只发射超声波,
控制器控制,所以本项目选用它作为发声器件。
另一只接收反射回来的超声
蜂鸣器是一种简易的发声器件,接通电源,其内部的小
波,根据收发的时间间隔来
计算物体之间的距离。 铁片在电磁感应作用下来回振荡发出声音,在家用电器、电
子玩具、游戏机中均有广泛的应用。
蜂鸣器分为有源和无源两种,如图 和 所示。本
2-5 2-6
项目选用更易控制的有源蜂鸣器。
小贴士
蜂鸣器根据其内部有无
振荡源,可分为有源蜂鸣器
和无源蜂鸣器。有源蜂鸣器
图2-5 有源蜂鸣器 图2-6 无源蜂鸣器
接上额定电源(新的蜂鸣器
在标签上都有注明)可连续 完成本项目制作所需器件如表 所示。
2-2
发声;无源蜂鸣器则和电磁
表2-2 项目所需器件
扬声器一样,须要接在音频
输出电路中才能发声。 器件名称 作用
板 处理信息
UNO
超声波传感器 测量头部与桌面的距离
有源蜂鸣器 发出报警信息
面包板、杜邦线 搭建电路
线 连接微控制器与计算机
USB
32第二单元 基于开源硬件的信息系统
( )可行性验证实验
3
根据初步设计方案和选择的器件,需要验证用 板
UNO
控制有源蜂鸣器发声和控制超声波传感器测距的可行性,然
后才能进一步搭建低头报警器原型。
●蜂鸣器发声实验
实验步骤:
① 根据图 ,将有源蜂鸣器的正极(长引脚)与
2-7 UNO
板的 号引脚相连,负极(短引脚)与 板的 引脚
2 UNO GND
相连。
2
+
-
GND
图2-7 有源蜂鸣器电路连接图
②编写程序。
蜂鸣器作为输出响应器件,获得 板发出的指令,
UNO
即可发出鸣叫声。对于有源蜂鸣器,只要其控制引脚为高电
平,即可发出声音。因此程序的目的是控制 号引脚电平的
2
高低。示例程序如下:
void setup()
{
将 号引脚设置为输出模式
pinMode(2,OUTPUT); // 2
digitalWrite(2,HIGH);
将 号引脚设置为高电平,有源蜂鸣器发出声音
// 2
}
void loop()
{
}
③ 测试。将程序输入 中,编译成功后上传
Arduino IDE
至 板。观察有源蜂鸣器的发声情况(图 )。
UNO 2-8
33开源硬件项目设计
图2-8 有源蜂鸣器实验效果图
?
?
思考与讨论
可否使用 板的其他引脚来驱动有源蜂
1. UNO
鸣器?应如何修改现有程序?
怎样控制有源蜂鸣器,使其每隔 秒发声?
2. 1
●超声波传感器测距实验
实验步骤:
① 连接器件。超声波传感器的 、 引脚分别与
VCC GND
板的 引脚和 引脚相连,即 板给超声波传
UNO 5V GND UNO
感器供电。 、 引脚分别与 板的 号和 号引
Trig Echo UNO 2 3
脚相连。电路连接如图 所示。
2-9
超声波传感器
小贴士
超声波传感器有 个引
4
脚, 和 分别连接电
VCC GND
源的正、负极, 引脚用
Trig
来触发超声波信号, 引
Echo
脚负责输出回波时间信号。
图2-9 超声波传感器电路连接图
34第二单元 基于开源硬件的信息系统
② 编写程序。
超声波测距示意图(局部)如图 所示,由于 参见 知识链接“超
2-10 UNO P42
板上的 号和 号引脚分别连着超声波传感器的 、 声波测距原理”
2 3 Trig Echo
引脚,通过控制 板的 号、 号引脚的电平状态即可实
UNO 2 3
现超声波测距。
小贴士
波特率决定串口通信两
端数据传输的速度。波特率
越高,传输速度越快。波特
率通常可设置为 ,两端
9600
设备必须使用相同的波特率。
程序中可以用脉冲宽
度时长记录函数
pulseIn(pin,
来读取回波的时间。
value)
其中 为开发板的数字引
pin
图2-10 超声波测距示意图(局部)
脚号, 为引脚电平值
value
( 或 )。若
HIGH LOW value
定义浮点变量用于存储计算的距离值 为 ,那么当 对应
float Value_cm; // HIGH pin
的引脚为高电平时,开始计
void setup()
时,引脚变为低电平则停止
{
设定串口监视器的波特率为 计时。该函数记录并返回的
Serial.begin(9600); // 9600
时间单位为微秒。
pinMode(2,OUTPUT);
将数据类型强制
pinMode(3,INPUT); float()
转换为浮点型。
}
void loop()
{
设置 号引脚为低电平
digitalWrite(2,LOW); // 2
延迟 微秒(器件电气性能要求)
delayMicroseconds(2); // 2
设置 号引脚为高电平
digitalWrite(2,HIGH); // 2
保持 微秒
delayMicroseconds(10); // 10
digitalWrite(2,LOW);
设置 号引脚为低电平,传感器发出超声波
// 2
Value_cm = float(pulseIn(3, HIGH)*17)/1000;
根据 号引脚读取的回波时间计算距离,并换算为厘米
// 3
在串口监视器中输出测得距离值
Serial.print(Value_cm); //
在距离值后加上单位“ ”并换行
Serial.println("cm"); // cm
delay(1000);
}
35开源硬件项目设计
③ 测试。将程序输入 ,编译成功后上传至
Arduino IDE
参见 知识链接“串 板。打开串口监视器,将手放在超声波传感器的正上方,
P43 UNO
口监视器的应用”
不断改变手与超声波传感器之间的距离,观察串口监视器中
数值的变化。测试效果如图 和图 所示。
2-11 2-12
图2-11 超声波传感器测距实验效果图 图2-12 串口监视器输出的距离值
?
?
思考与讨论
可行性验证实验中将超声波传感器测得的
1.
数据转换成距离值,经历了哪些过程?
超声波传感器测得的距离与真实距离略有
数字化学习 2.
偏差,这是为什么?
上网查找资料,学习
超声波传感器测距误差的相
关内容,了解如何降低测距
误差。 活 动
根据给出的实验步骤,完成以上两个可行
3.2
性验证实验。小组交流各自实验中遇到的问题及采
取的解决办法。
小贴士
( )详细设计
4
有源蜂鸣器可与 经过可行性验证实验,明确所选器件能够支持初步设计
UNO
板上的其他数字引脚相连,
方案,接下来需要设计低头报警器的详细方案,绘制电路连
只要不与超声波传感器所用
接图。如图 所示,将蜂鸣器、 板、超声波传感器
引脚冲突即可。 2-13 UNO
连接在一起,构成一个完整的系统。
有源蜂鸣器正极连 板的 号引脚,负极连 引脚。
UNO 5 GND
超声波模块的 、 、 和 引脚分别接在
VCC Trig Echo GND UNO
板的 、 号、 号和 引脚。
5V 2 3 GND
36第二单元 基于开源硬件的信息系统
- +
5 3 从左端向右依次为
GND 、 、 、
2 VCC Trig Echo GND
5V GND
图2-13 低头报警器电路连接图
实现数据的采集、运算处理和输出
3.
( )制作原型
1
根据详细设计方案,利用选择的器件,搭建低头报警器
的原型。搭建完成的低头报警器原型如图 所示。
2-14
图2-14 低头报警器原型
( )编写程序
2
作品功能的实现需要程序来控制。本作品的程序首先要
控制超声波传感器发出超声波并接收回波,获得收发的时间
差,进而计算出与障碍物之间的距离,接着判断这一距离与
设定阈值的关系,当距离小于设定阈值, 板发送指令,
UNO
给予有源蜂鸣器引脚高电平,让其发出报警声(图 )。
2-15
37开源硬件项目设计
图2-15 低头报警器程序示意图
( )测试与优化作品
3
将程序输入 ,编译成功后上传至 板。
Arduino IDE UNO
打开串口监视器,将原型放置在书桌边缘,不断改变坐姿,
观察串口监视器中输出的距离数值的变化以及蜂鸣器的发声
情况,如图 所示。
2-16
小贴士
经测试,作品基本实现
预设功能后,可进一步对其
进行造型设计。造型设计的
原则是在具有实用性的同时,
还应具有观赏性。
图2-16 串口监视器输出的距离数值
38第二单元 基于开源硬件的信息系统
?
?
思考与讨论
测试时,串口监视器显示的有些数字特别大,
明显大于实际距离,这是为什么?
测试无误后,可以对作品进行优化。如有源蜂鸣器发出
的声音单一、刺耳,能否改进设计,使其发出优美的声音?
解决思路:更换发声器件,如用 模块播放预先录
MP3
制的提示语音或音乐。图 是某同学改进的低头报警器。
2-17
模块
MP3
扬声器
图2-17 某同学改进后的低头报警器
活 动
完成低头报警器的制作并进行优化。
3.3
( )根据详细设计方案搭建低头报警器原型。再参考给出的程序示意图,
1
编写低头报警器的程序,并进行测试。
( )尝试对作品进行优化,如可以从造型、供电等方面来考虑。将优化后
2
的作品在班级内交流展示,并对其他组的作品进行评价。
除了头部与书桌的距离过近会影响视力,光线不足也会对视力造成不良
3.4
影响。能否在现有装置的基础上增加光线太暗的报警?(提示:光敏电阻可用
来采集光线的强弱信息,光线信息可类同于本项目中的距离值,用程序判断其
是否超出预设范围,从而决定蜂鸣器是否发出报警声。)
39开源硬件项目设计
知识链接
基于开源硬件的信息系统基本结构
一般而言,信息系统的基本功能是进行信息处理,具体包括信息输入、存储、处理、
输出及控制等。
基于开源硬件的信息系统可以简化为三个部分,即信息输入、信息处理和信息输出,
如图 所示。
2-18
图2-18 基于开源硬件的信息系统的组成
信息输入:完成信息的获取,一般由各种传感器来采集并传递给信息处理模块,例如,
温度传感器能够获取当前环境的温度,光敏传感器能够获取光线的强度信息等。
信息处理:一般由各种型号或性能的开源硬件来完成,它们能根据系统的功能需求,
对输入的信息进行加工处理。本教材中主要用到的是 开发板和树莓派开发板。
Arduino
信息输出:将处理完成的信息传递给系统的执行装置,实现信息的定向传递。
以开源硬件 板为例,开发板可通过引脚实现信息的输入与输出。如图
Arduino UNO 2-19
所示,开发板上标记 的为数字引脚,这些引脚既可用来输入信息,也可用来输出信息。
2~13
例如,程序“ ”是指将 号引脚设置成输出模式,此时它只能用于输
pinMode(2, OUTPUT); 2
出信息;“ ”是指将 号引脚设置成输入模式,此时它只能用于接收信息。
pinMode(2, INPUT); 2
标记为 的为模拟引脚,这些引脚只能用于输入模拟信号,如温度值等。
A0~A5
数字引脚
模拟引脚
图2-19 UNO板数字引脚和模拟引脚示意图
传感器
传感器是一种检测装置,能感知到被测量的信息,并能将之按一定规律变换成为电信
号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
40第二单元 基于开源硬件的信息系统
根据传感器的基本感知功能,可将其分为热敏元件、光敏元件、气敏元件、力敏元件、
磁敏元件、压敏元件、声敏元件、放射线敏感元件、流体元件和味敏元件等几大类。人们
常将传感器的功能与人类五大感觉器官相比拟:
压敏 热敏 流体传感器——触觉
/ /
气敏传感器——嗅觉
光敏传感器——视觉
声敏传感器——听觉
味敏传感器——味觉
利用开源硬件进行项目设计时,需要根据被测量对象的特点选择不同的传感器。常用
的传感器有光敏传感器、温度传感器、霍尔传感器、土壤湿度传感器、震动传感器、气体
传感器、红外传感器、加速度传感器等。
光敏传感器实物如图 所示,能感受到周围光线的变化,可用于楼道灯或者路灯
2-20
的自动控制。
图2-20 光敏传感器
依据温度的测量范围有各种不同的温度传感器。 是常用的温度传感器,如图
LM35 2-21
所示的 ,其测量范围是 ℃ ℃;图 是 温度传感器,其测量范围
LM35DZ 0 ~100 2-22 pt100
是 ℃ ℃。
-50 ~300
图2-21 LM35DZ 温度传感器 图2-22 pt100 温度传感器
霍尔传感器可以检测周围磁场的变化,广泛应用于电机测速、位置检测等场合,如图
所示。
2-23
图 所示的是土壤湿度传感器,可用于检测土壤中水分的含量,多应用于自动浇
2-24
水系统、花盆土壤湿度检测装置中。
41开源硬件项目设计
图 2-23 霍尔传感器 图2-24 土壤湿度传感器
震动传感器(图 )可以感受周边环境的震动,生活中电动自行车便应用了该传
2-25
感器,使得电动车在未解锁的状态下被碰触会发出警报声。
甲烷传感器(图 )是将空气中的甲烷浓度变量转换成有一定对应关系的输出信
2-26
号的装置,常用于煤气泄漏报警装置中。
图2-25 震动传感器 图 2-26 甲烷传感器
本项目使用的超声波传感器是利用超声波能在气体、液体和固体等介质中传播,通过
计算收发超声波时间差来测量距离。
超声波测距原理
超声波测距原理如图 所示,超声波发射器向某一方向发射超声波,并开始计时,
2-27
超声波在空气中传播,途中碰到障碍物会反射回来,超声波接收器接收到反射回来的超声
波就立即停止计时。超声波在空气中的传播速度为 ,根据计时器记录的时间 ,可
340m/s t
以计算出发射点距障碍物的距离 ,即: × 。
s s=340 t/2
本项目中计算障碍物与超声波传感器的距离公式:
距离 高电平持续的时间(μ )× (声速)
= s 340m/s /2
将上式中的距离单位统一换算成 ,时间单位换算成μ ,可以得到下式:
cm s
距离( ) 高电平持续的时间(μ )× μ
cm = s 17000 cm / 1000000 s
高电平持续的时间 ×
= 17 / 1000
42第二单元 基于开源硬件的信息系统
图2-27 超声波测距原理
串口监视器的应用
串口监视器是 中嵌入的程序调试工具,可用于输入与输出(打印)信息。
Arduino IDE
在编写程序的过程中可用于程序的交互与错误的排查。在本项目中,主要用来输出超声波
传感器的距离值。
其应用如下:
( )使用“ ”来初始化并设定串口监视器的波特率(数据通信的速度)。
1 Serial.begin(9600);
( )使用“ ”(输出数据不换行)或“ ”(输出数据换行)来
2 Serial.print(); Serial.println();
输出数据。
( )在 中点击“工具”→“串口监视器”即可打开串口监视器。
3 Arduino IDE
( )编译并上传程序到 板,在串口监视器的右下角选择 波特率后,即可看
4 UNO 9600
到对应数据。在本项目中看到的是头部与超声波传感器之间的距离。
43项目四
设计制作自行车里程仪
——体验作品的迭代优化
将创意或想法变为作品的过程,一般都要经历提出设想、设计
系统解决方案、实现解决方案等环节,但这个过程并不一定都是完
全按照环节的顺序线性开展的。因为在这个过程中,可能会遇到各
种未曾预料到的问题,例如,预想的功能没有实现,产生一些新的
想法或者测试发现一些不尽如人意的地方,这就迫使我们重新思考
设计制作的每个环节,并作出相应的修改与调整。这种不断反思、
修正的方法,被称为迭代优化,它贯穿作品的整个设计制作过程,
帮助我们更好地实现设计初衷(图 )。
2-28
图2-28 作品的优化
项目学习目标
本项目中,我们将设计制作一个自行车里程仪,并对其进行测
试优化,体验作品的迭代优化过程。
完成本项目学习,须回答以下问题:
基于对里程仪及自行车的分析,如何设计基于开源硬件的自
1.
行车里程仪方案?
根据设计方案,如何利用开源硬件的设计工具或编程语言,
2.
实现自行车里程仪的功能?
完成自行车里程仪原型制作后,可从哪些方面进行优化?
3.第二单元 基于开源硬件的信息系统
项目学习指引
提出想法
1.
自行车里程仪的主要功能是测量并显示自行车行驶的速
度和里程,帮助骑行者了解骑行状态。
汽车里程仪的基本原理是根据变速箱输出轴转速来计算
车轮转速,然后将车轮转速乘以车轮滚动半径得到里程,里
程除以时间得到速度。里程仪的样式多样,有数字式的,有
指针式的,还有数字和指针一体化的(图 )。
2-29
本项目尝试设计制作的自行车里程仪能够在自行车移动
时,将行驶的里程和速度实时以数字的形式显示,方便骑行
者随时查看。
(a)
活 动
自主学习,了解不同种类交通工具检测里
4.1
程和速度的基本方法,完成表 的填写。
2-3 (b)
表2-3 各式里程仪的检测方法
图2-29 各式里程仪
里程仪名称 检测方法
汽车里程仪
设计符合事物特性的系统
2.
( )初步设计
1
根据提出的主要功能设想,研究以下问题:需要测量哪
些数据才能得到自行车的速度和里程?采用何种方法可以获
取需要测量的数据?最终获取的速度和里程信息该如何显
示?例如,借鉴汽车里程仪的原理,可以通过测量自行车车
轮转动的圈数来获取速度和里程信息。这是因为车轮的周长
是固定的,只要用这个周长乘以圈数就能得到骑行的里程,
里程除以骑行时间便得到速度。初步设计如图 所示。
2-30
如何检测自行车车轮转动的圈数?可以在自行车上设计
一个检测点,传感器经过这个检测点的次数就是车轮转动的
圈数,时间数据则可以通过程序中的时间函数获得。
45开源硬件项目设计
小贴士
自行车里程仪的速度有
两种不同的计算方式:一种
图2-30 自行车里程仪初步设计图
是用里程除以相对应的骑行
时间,这样得到的是平均速
度;另一种是用车轮周长除
以车轮转动一圈的时间,得
到的是瞬时速度。
图2-31 传感器位置示意图
?
?
思考与讨论
如何判断自行车是否处于运动状态?
数字化学习
( )选择器件
2
打开配套资源,了解霍 ●选择车轮转动圈数传感器
尔效应及霍尔传感器的使用 生活中用于记录次数的方法有很多种,红外传感器和磁
方法。
感应(霍尔效应)传感器都可以用于次数统计。考虑到成本、
感应速度、抗干扰及安装的便捷性,本作品选用霍尔传感器。
霍尔传感器是根据霍尔效应制作的一种磁场传感器,广
5V OUT 泛用于电机测速、位置检测等场合。
GND 如图 所示的霍尔传感器,其工作电压为 ,有 个
2-32 5V 3
引脚,分别为 、 和 ,其中 用于输出电平信号。
5V OUT GND OUT
当霍尔传感器感应到磁场时, 引脚输出低电平;没有感
OUT
应到磁场,则输出高电平。
●选择显示器件
显示技术当前比较成熟,可利用的器件种类繁多,如数
磁感应接收头 码管、液晶显示器( ,简称 )、
Liquid Crystal Display LCD
有 机 发 光 二 极 管( , 简 称
图2-32 霍尔传感器
Organic Light Emitting Display
),其中最为常见的是 ,例如 ,可以显
OLED LCD LCD1602
示英文字母、数字和标点符号。它的成本低廉,不易损坏。
由于本作品只需要显示数字,所以可选用 作为显
LCD1602
示器件,实物图如图 所示。
2-33
46第二单元 基于开源硬件的信息系统
图2-33 LCD1602显示屏
?
?
思考与讨论
如果需要显示中文字符可选用哪些 ?
LCD
为完成本项目制作,需要表 所示的核心器件。
2-4
小贴士
表2-4 项目核心器件
有两种型号,
器件名称 器件作用 LCD1602
一种是标准的 个引脚,
16
板 处理信息 另一种是只有 个引脚。两
UNO 4
者功能基本相同,但连入电
霍尔传感器 感应磁场变化
路的方式略有差异。
显示里程和速度等信息
LCD1602
磁铁 固定在车轮上,用于触发霍尔传感器
( )可行性验证实验
3
本项目需要验证用微控制器控制霍尔传感器检查磁场的
性能和 显示数字的功能。
LCD1602
●霍尔传感器检测磁场实验
①根据图 连接器件。将霍尔传感器与 板相连,
2-34 UNO
其 和 引脚分别与 板的 和 引脚相连,
5V GND UNO 5V GND
引脚连接 板的 号引脚,用于将检测信号输出到
OUT UNO 2
板。
UNO
霍尔传感器
图2-34 霍尔传感器电路连接图
47开源硬件项目设计
② 编写程序。程序中用 号引脚来读取传感器输出的电
2
平信号,如果电平值为 ,说明有磁铁经过,将统计次数变
0
量 的值加 后,在串口监视器中输出 的值。示
count 1 count
例程序如下:
定义整型变量 用于计数
int count=0; // count
将 号引脚取名为
#define hullPin 2 // 2 hullPin
void setup()
{
设置串口波特率为
Serial.begin(9600); // 9600
pinMode(hullPin,INPUT_PULLUP);
初始化 引脚模式为带上拉电阻模式
// hullPin
}
void loop()
小贴士
{
数字电路中只有高电平 int sensorValue=digitalRead(hullPin);
读取 引脚的输入信号值
和低电平两种状态。在通电 // hullPin
如果信号值为 ,说明有磁铁经过
初期,由于输出状态的高、 if(sensorValue==0) // 0
低电平不稳定,需要利用上 {
记录磁铁经过霍尔传感器的次数
拉电阻将不确定的电路状态 count++; //
在串口监视器中打印 值
稳定下来,即通过一个电阻 Serial.println(count); // count
延迟 毫秒
将不确定的信号稳定在高电 delay(200); // 200
平上,这就是带上拉电阻 }
模式。 }
由于 板的运行速
UNO
度非常快,为了避免车轮转 ③ 测试。将程序上传至 板,打开串口监视器,将
UNO
动较慢时程序重复检测信 磁铁来回在霍尔传感器下方摆动,速度可以慢一些,同时人
号,故在程序中设置了延时
工统计磁铁经过霍尔传感器的次数,查看串口监视器输出的
函数。
统计次数与人工统计次数是否相符或接近(图 )。若
2-35
相符,说明霍尔传感器能够用于统计自行车车轮转动的圈数。
图2-35 测试结果
48第二单元 基于开源硬件的信息系统
● 用 显示数字实验
LCD
① 根据图 连接器件。 一共 有 个引脚,但 数字化学习
2-36 LCD 16
此处不必全用。 的 引脚、 引脚(连上电阻)、
LCD VSS VO 如果选用的
引脚及 引脚均连接在面包板的负极上。 引脚和 LCD1602
RW K VDD A 为 个引脚的型号,可上网
引脚连接在面包板的正极上。其他引脚分别与 板相连, 4
搜索,了解其与 板的
UNO
UNO
即 、 、 、 、 、 引脚分别与 板的 、 连线方式。
RS E D4 D5 D6 D7 UNO 12
、 、 、 、 号引脚相连。最后将面包板的正负极分别
11 6 5 4 3
与 板的 及 引脚相连。
UNO 5 V GND
从左端向右的 个
6
引脚依次为 、 、
靠右端的 个引脚自左向右依次
K A
6
、 、 、 为 、 、 、 、 、
D7 D6 D5 D4 E RW RS VO VDD VSS
图2-36 LCD电路连接图
②编写程序,示例程序如下:
数字化学习
调用 库函数
#include // LCD LiquidCrystal 代码的开头可以调
LiquidCrystal lcd(12, 11, 6, 5, 4, 3); 用 的 专 用 库 函 数
创建 对象 ,使用引脚 、 、 、 、 、
LCD
// LiquidCrystal lcd 12 11 6 5 4 3 。在初始化
LiquidCrystal
void setup() 部分对用到的 板的
UNO
{ 引脚和变量进行定义,并
初始化 :每行 个字符,共 行
lcd.begin(16, 2); // LCD 16 2 创建一个 类
LiquidCrystal
lcd.setCursor(0, 0); 型的对象 。自行上网
设置 输出的起始位置:第 行,第 个字符
lcd
// LCD 1 1 学习,了解 库函数
利用 函数输出“ ”
LCD
lcd.print("hello world"); // print() hello world 的使用方法和相关注意事
lcd.setCursor(0,1); 项。
设置 输出的起始位置:第 行的第 个字符
// LCD 2 1
利用 函数输出“ ”
lcd.print("2017"); // print() 2017
}
void loop()
{
}
49开源硬件项目设计
③ 测试。将程序输入 ,编译成功后上传至
Arduino IDE
板,查看 第一行是否显示“ ”,第二行
UNO LCD hello world
是否显示“ ”。
2017
图2-37 测试结果
( )详细设计
4
经过可行性验证,可知用霍尔传感器配以磁铁统计自行
车车轮转动的圈数和用 显示自行车的速度、里程的方
LCD
案可行,接下来合理安排器件的连接方式,将器件整合到一
起构成完整的系统。
图2-38 自行车里程仪电路连接图
50第二单元 基于开源硬件的信息系统
活 动
数字化学习
根据给出的实验步骤,完成以上两个可行
4.2 若在可行性验证实
性验证实验。小组交流各自实验中遇到的问题及采
验中遇到困难,可打开配
用的解决办法。
套资源,阅读提供的参考
程序。
实现作品设计方案及其优化
3.
( )制作原型
1
利用已选择的器件,根据详细设计的电路图连接电路,
搭建自行车里程仪的原型,如图 所示。
2-39
图2-39 搭建自行车里程仪原型
图2-40 制作完成的自行车里程仪原型
51开源硬件项目设计
?
?
思考与讨论
自行车里程仪最终是要安装在骑行的自行车上,
那么搭建其原型时有哪些注意事项?
小贴士
本作品中将两次车轮
( )编写程序
转动的时间差大于 秒的情 2
5 根据自行车里程仪的功能,程序首先读取霍尔传感器输
况默认为自行车不在骑行
出的电平状态,如果检测到其引脚输出为低电平,说明有磁
状态。
铁经过,车轮在动,给圈数加 且将计算得到的速度和里程
1
显示在 上。如果没有,则继续判断两次计时的时间间
LCD
隔是否大于 秒,大于 秒说明自行车停止不动了,将速度
5 5
设为 ,并在 上显示。自行车里程仪程序示意图如图
0 LCD 2-41
所示。
图2-41 自行车里程仪程序流程图
图2-41 自行车里程仪程序示意图
52第二单元 基于开源硬件的信息系统
( )测试与优化作品
3
测试原型能否呈现预设的效果,即每当磁铁经过霍尔传
感器,查看 是否会显示速度和里程。将测试好的自行
LCD
车里程仪安装到自行车上,骑行查看其能否正确地显示速度
数字化学习
和里程。测试效果如图 和图 所示。
2-42 2-43
测 试 作 品 时 可 用
线给 板供电,
USB UNO
但若要将自行车里程仪安
装到自行车上,则需要利
用电池供电。打开配套资
源,了解用电池给
霍尔传感器 UNO
板供电的方法。
磁铁
供电
USB
图2-42 测试自行车里程仪
霍尔传感器 磁铁 板、 及电池等
UNO LCD
图2-43 在自行车上安装自行车里程仪
自行车里程仪搭建完成,如果能正常工作,仍然需要思
考还有哪些地方可以改进。只有不断地改进优化,才能创造
出完美的作品。本作品可能改进的方向如表 所示。
2-5
53开源硬件项目设计
表2-5 自行车里程仪优化方向
参见 知识链接
P56
可能优化的方向 具体说明
“优化”
按下按钮清空当前里程计数,重新开始
添加里程计数重置按钮 记录。若没有这个按钮,则需要断开开
发板的电源
里程仪的原型用面包板、跳线连接,若
提高连线的可靠性 遇到强烈颠簸可能造成接触不良。可采
用焊接方式提高系统的可靠性
利用多个 或者灯带呈现灯光随速
LED
添加速度指示灯 度变化的效果,如突然减速时显示闪烁
红灯
将 改为 ,其外观更小巧美观,
提高显示效果 LCD OLED
适合显示图形;还可考虑用指针显示速度
用轮询的方式检测霍尔传感器的状态很
减少车轮转动圈数漏测 可能漏检。用微控制器的中断特性可减
少漏测,提高数据的精确性
例如,某同学在骑行时发现程序显示的车轮转动圈数和
真实的圈数不同。在验证霍尔传感器时,也发现记录的圈数
有遗漏。这是什么原因导致的?该如何改进?
原因分析:固定在车辐条上的磁铁经过霍尔传感器是瞬
间发生的事件,如果程序中出现 语句或者程序行数比
delay
较多,那么当霍尔传感器输出电平变化时,有可能此刻程序
并没有正在读取引脚的数值,从而造成漏测。
解决思路:可以用当 的引脚电平发生高低改变
Arduino
时立即“通知”程序的方法来解决这一问题。这需要使用
开发板自身提供的称作“中断”的机制来实现。
Arduino
54第二单元 基于开源硬件的信息系统
板不停地读取、查看霍尔传感器引脚的状态,此工
UNO
作方式称为“轮询”,其优点是程序设计方便,缺点是
CPU
运算能力浪费。 板还有一种工作方式,称为“中断”。
UNO
好比一个人同时进行烧开水、拖地两件家务,在拖地时,一
旦水沸腾,鸣笛壶发出声音来通知人,这时人便会中断当前
的拖地工作,先去关火,然后继续拖地。
如图 所示,可以利用一个霍尔传感器电平变化标
2-44
志位来实现中断服务程序和主程序之间的信息交换,优化自
行车里程仪程序。主程序处理速度和里程的计算及显示,并
查看变化标志位。当霍尔传感器发生电平变化时(类似鸣笛
参见 知识链接“中
壶发出声音),会立即运行中断服务程序,将变化标志位设 P56
断”
为有效;主程序通过查看变化标志位是否有效,便能得知在
过去的时间内霍尔传感器有无经过磁铁,即得知车轮是否转
动了一圈。
图2-44 中断服务程序和主程序信息交换示意图
活 动 数字化学习
打开配套资源,阅读
尝试搭建自行车里程仪的原型,再参考程
4.3 中断程序编写方法及优化后
序示意图,编写自行车里程仪程序,并优化作品。
的程序。
55开源硬件项目设计
知识链接
优 化
优化( )会贯穿作品的整个生命周期,常见的优化可以分为两类,一是改善已
optimize
有设计,即针对现有设计的不足进行改善;二是强化设计,即在现有作品的基础上提高性
能或增加新的功能。优化的方向,既可以从测试或体验作品时得到的反馈信息中来,也可
以从设计本身去反思或发现需要改善和优化的地方。常见优化方向如表 所示。
2-6
表2-6 作品优化方向
思考维度 内 容
它满足需求了吗? 作品预设的功能是否实现?工作起来是否有效并可靠?
它本身是否安全?是否会对使用者或者外部事物、环境等造成伤
它使用起来安全吗?
害?
作品的硬件和程序结构是否清晰?使用的材料组装是否合理?材
它的制作环节有改进的地方吗?
料结构是否稳定?
它的外观设计合理吗? 作品外观是否漂亮、安全、稳定、耐久?是否适应工作的环境?
它的成本合理吗? 成本是否超出预期?还有哪些方面可以节省成本?
中 断
中断( )是计算机的一个重要概念,现代计算机普遍采用中断技术。 执
interrupt CPU
行程序是按指令一条一条向下顺序执行的,但如果此时发生了某一事件 请求 迅速
A CPU
去处理(中断发生), 暂时中断当前的工作,转去处理事件 (中断响应和中断服务)。
CPU A
将事件 处理完后,会再回到原来被中断的地方继续执行程序(中断返回),这一
CPU A
过程称为中断。这一过程类似于你正在读书,这时电话响了,你放下手中的书去接电话,
接完电话后再回来,并从停止的地方继续往下读。
计算机的工作方式与人类类似,假设你有一位朋友来造访,由于不知道何时到达,你
只能在门口等待,于是什么事情也干不了。如果在门口装一个门铃,你不必在门口等待而
可以去做其他的事情,朋友来了按门铃通知你,你这时才中断工作去开门,这样就避免等
待和浪费时间。计算机也是一样,如键盘输入,若不采用中断技术, 将不断扫描键盘
CPU
是否有输入,这样会经常处于等待状态,降低工作效率。
采用中断方式, 可以进行其他的工作,当键盘有按键并发出中断请求时,才予以
CPU
响应,暂时中断当前工作转去执行读取键盘按键,读完后又返回继续执行原来的程序,这
样大大提高了计算机系统的效率。“中断”工作过程如图 所示。
2-45
56第二单元 基于开源硬件的信息系统
图2-45 “中断”工作过程
计算机运行过程中存在大量的中断请求。打开计算机设备管理器,可以看到如图
2-46
所示的中断请求列表。
中断请求列表
图2-46 中断请求列表
中断 是系统时钟,中断 是键盘,中断 是鼠标……若它们同时请求中断该怎么
0 1 12
办?计算机会对这些中断进行编号,中断号越低的优先级越高。所谓优先级,就是当两个
或多个中断请求同时发生时, 先响应优先级高的中断。
CPU
板支持 中断、时钟中断、外部中断等几种中断。
UNO RESET
● 中断,指 引脚输入为低电平时,中止当前程序,执行 中断。
RESET RESET RESET
● 时钟中断,指设定 内部定时器后,当到达指定时间,将产生中断请求,常用
CPU
于定时。
● 外部中断,指当 的外部中断引脚电平变动时,产生中断请求。常用于键盘输入、
CPU
串口通信等。 板有两个引脚( 号和 号引脚)支持外部中断,自行车里程仪优化案
UNO 2 3
例使用的就是外部中断。
57开源硬件项目设计
常见的输出设备
在开源硬件项目中,常见的输出设备可以大致分为发光器件、显示器件、发声器件、
执行装置等几类。
例如,项目二的交通灯作品中用到的 是一种发光器件,而本项目中提到的
LED
、数码管、有机发光二极管都是显示器件。图 所示的是四位数码管,只能显示数字,
LCD 2-47
常用于医用数字温度计、体重计等。
设计制作低头报警器时用到的蜂鸣器则是一种发声器件。此外,扬声器也是一种常用
的发声器件,如图 所示。
2-48
图2-47 四位数码管 图2-48 扬声器
常见的执行装置有电机和舵机。电机常用于驱动车轮、风扇等,如图 所示;舵
2-49
机常用于改变云台的角度、调整固定翼飞机副翼的角度及改变机器人手臂关节位置,如图
所示。在后续的项目六中会用到电机和舵机。
2-50
图2-49 电机 图2-50 舵机
58第二单元 基于开源硬件的信息系统
单元挑战 设计制作创意风扇
一、项目任务
炎炎夏日,风扇是家里必备的电器。一些款式较老的旧风扇,使用过程中可能会存在
不能远程调速、自动开关等问题,不具备智能。有了开源硬件,我们可以自己动手改进,
创新出个性化的智能风扇。例如,当有物体(人或宠物)过于靠近风扇时,风扇会自动停
止转动;可以在家里的任意角落遥控风扇的转速和摆动方向等。考虑到安全问题,本项目
只需设计并制作智能风扇模型,而不直接改造真实的风扇。制作风扇模型时,建议选用
左右的低压直流电机,以免发生危险。
3V
二、项目指引
以小组为单位,采用头脑风暴的方法确定创意风扇的核心功能。
1.
根据信息系统的基本构成,确认创意风扇的系统结构图,明确各个组成部分的功能
2.
及系统间数据的流向。
开展数字化学习,了解各个功能模块的实现方法,然后确定好选用的方案,最后形
3.
成初步设计方案。
根据初步设计方案,选用合适的微控制器和其他器件,并进行可行性验证实验,验
4.
证器件是否支持初步设计方案。在此基础上形成详细设计方案。
按照详细设计方案,搭建创意风扇的原型,并根据核心功能编写程序。
5.
测试作品,然后对创意风扇进行造型设计,使之既美观又实用。
6.
三、 交流评价与反思
各小组在班级内展示和交流创意想法的来源、设计制作过程中的设计文件、程序及成
品等,以及设计制作过程中遇到的问题和采用的解决方法。同时认真听取他人的建议或意
见,然后据此对作品进行进一步优化,使之更加“完美”。
我们小组遇到的问题:
采用的解决方案:
59开源硬件项目设计
单元小结
一、主要内容梳理
二、单元评价
评价内容 达成情况
了解基于开源硬件的信息系统的基本构成( )
A
根据实际生活中的问题,综合运用科学、数学、技术等学科的知识,对低头报警器和
自行车里程仪等进行抽象,设计出能够解决问题的信息系统( 、 、 、 )
A T I R
体验将具体问题进行抽象,基于功能要求利用开源硬件搭建符合事物特性的信息系统
( 、 、 )
A T I
了解传感器的工作原理和工作方式,分析其在信息系统中的作用( 、 )
A I
能够正确地测试并验证器件的可用性( 、 )
T I
能够根据设计方案,选用恰当的开源硬件及其他器件,搭建作品的原型( 、 、 )
A T I
根据功能需求,编写程序示意图,然后选用恰当的编程语言编写程序( )
T
将设计制作完成的作品在班级和校园开源社区中进行分享,践行开源的精神( 、 )
I R
说明: —信息意识, —计算思维, —数字化学习与创新, —信息社会责任
A T I R
6600第三单元
开源硬件项目设计与开发
现今,越来越多的人利用开源硬件和互联网技术加
入创客行列,去发现、解决一些生活中的问题。例如,
我们发现看书或做作业时眼睛距离书本太近会对视力造
成负面影响,于是利用开源硬件设计制作了低头报警器。
创新过程中难免遇到各种新技术或困难的挑战,这
时应充分利用数字化工具来获取资料,帮助自己理解、
掌握解决问题所需的技术、工程、艺术与数学等学科的
相关知识;此外,还要及时和同伴分享信息、交流想法
和资源,协作解决问题,践行开源与知识分享的精神。
本单元将带领大家以解决现实生活中的真实问题为
出发点,利用开源硬件,充分发挥自主性设计制作智能
园艺装置和无人船模型,感受和体验开源硬件项目的设
计与开发。
单元挑战
学习目标
设计制作远程快递
◆ 基于事物特征分析,应用信息系统的基本 收件盒
结构设计基于开源硬件的作品开发方案。
◆ 根据设计方案,选择利用开源硬件的设计
工具或编程语言,自主实现作品的各种功能模块。
◆ 完善项目作品设计方案,践行开源硬件与
知识分享的精神。项目五
设计制作智能园艺装置
——体验无线数据传输
家中、校园里一般都会栽种各种植物。不同植物对水、光照等
的需求各不相同,如果得不到精心照顾,植物往往会生长缓慢、生
病甚至死去。能否设计制作一个装置(图 ),用来检测植物的
3-1
生长环境,如温度、湿度、光照等,并告知和帮助人们更专业地呵
护植物呢?考虑到这些植物可能分布在家中或学校里的不同位置,
该装置需要通过无线传输来收集各监测点的数据。
如果这个想法能实现,还可以将其应用到田间地头,变成一款
帮助农户对农作物的种植环境进行监测的设备,告知何时该浇水施
肥……
与此相类似,生活
中的许多问题都可以
提出一些解决的想法,
并尝试应用开源硬件
来实现。若要设计制
作一个智能园艺装置,
你会有哪些想法?能
否将想法变成作品?
图3-1 自动浇水苗圃
项目学习目标
在本项目中,我们将利用开源硬件设计制作一个智能园艺装置,
帮助监测植物的生长环境。
完成本项目学习,须回答以下问题:
智能园艺装置有哪些特点?如何设计合适的、符合自己能力
1.
的作品开发方案?
如何根据设计方案,制作智能园艺装置的原型并编程实现监
2.
测数据的输入、处理及输出?
无线数据传输的一般方法有哪些?如何根据作品需要选择恰
3.
当的传输方法?第三单元 开源硬件项目设计与开发
项目学习指引
提出想法
1. 小贴士
为了更好地照顾植物,希望有一个智能园艺装置,帮助
提出想法时,不妨采
监测植物的生长环境。监测的结果可以通过手机、计算机等
用头脑风暴来集思广益,
来实时查看,而不用让人待在监测装置前。
经过讨论确定项目的核心
功能。在这个过程中要学
会做“减法”,即去除不
必要的功能,将其精简到
不能再精简为止,这样有
●收集哪些植物生 ●数据需要经历 ●信息如何显示?
利于将精力、资源等集中
长环境数据? 哪些处理? ●如何对信息作出
在解决最重要的问题上,
●如何监测植物的 ●如何传输数据? 反应?
从而更好地推动项目进展。
生长环境? ● …… ● ……
● ……
图3-2 提出问题
为了更好地回答图 的问题,可以围绕涉及的事物——
3-2
园艺监测,从科学、技术、工程、数学等角度来分析。
● 不同植物对环境的要求差异很大,我的智能园艺装置服务于哪一种或哪一
类植物?
● 影响这种或这类植物生长的重要环境因素有哪些?温度?湿度?还是其
他?最为关键的是什么?
●这种或这类植物正常生长的最佳温度范围是什么?
● 考虑到观察数据的方便性,最好有一个无须固定在花盆里的装置来显示监
测数据,那么,数据如何传输到远端的装置处?
●检测装置需要有良好的稳定性,安装使用方便且应该能长期置于室外环境,
该怎样设计装置,以适应不同环境条件达到实用的目的?
● 不同的检测维度分别具备什么样的数学特征?不同数据之间是如何转换
的?例如,某植物的适宜温、湿度范围与传感器测试数据之间如何对应?
● 由于受环境影响,传感器检测的数据会受到干扰,使得数据不够平滑,如
何降低这些影响?
●除了显示数值,还有哪些方式可以提醒用户加强植物护理?
●如何给室外监测装置供电?
63开源硬件项目设计
活 动
为了设计智能园艺装置,首先需要学习有关植物和工程方面的基础知识。
5.1
我的装置计划监测的植物是 。
表3-1 自主学习的基础知识
我学习的知识主题 作 用
确定是否需要收集温度数据,并确定该植物适宜的
环境温度变化对某植物生长的影响
温度范围
确定是否需要收集土壤湿度数据,并确定该植物适
土壤湿度对某植物生长的影响
宜的湿度范围
确定该装置的基本功能需求和约束条件,并填入表 中。
5.2 3-2
表3-2 智能园艺装置的基本功能需求和约束条件
要实现的功能 约束条件
测量空气温度 温度范围为 ℃~ ℃
-20 60
无线数据传输 传输距离 米以上
50
设计基于无线数据传输的系统
2.
( )初步设计
1
制作的智能园艺装置系统首先是通过一个或多个传感器
收集植物的相关生长环境数据,完成信息的采集工作。然后
微控制器对收集得到的数据进行处理,最后远程传输给显示
器件呈现出来。智能园艺装置系统初步设计如图 所示。
3-3
64第三单元 开源硬件项目设计与开发
小贴士
信息呈现的方式有很多
种,如通过串口监视窗、
图3-3 智能园艺装置初步设计图 、数码管等来显示,甚
LCD
至可以将信息发送到手机屏
需求情境不同,形成的设计方案会有差异。每个人可根
幕上显示。测得的数据经过
据自己的技术条件、现有工具、器件等来决定。以下为两位 处理后,也可以用 闪烁、
LED
学生的初步设计方案。 蜂鸣器发声等方式直接提醒
观测者。
设计方案1
应用情境:教学楼后面放置着一盆植物,为精心呵护它
小贴士
的生长,需要了解该植物的生长环境温度及土壤湿度。当检
测得到的温度值不在该植物最佳的生长温度范围内时,系统 蜂鸣器报警的内容可参
会通过蜂鸣器发出报警声。 考项目三“设计制作低头报
警器”。
小贴士
无线数据传输的方式有
图3-4 智能园艺装置设计草图
蓝牙、 、红外和射频等,
Wi-Fi
每种方式各有不同的适用
范围。
参见 知识链接“无
P71
线数据传输”
图3-5 智能园艺系统结构图
65开源硬件项目设计
设计方案2
应用情境:校园的东南角和西南角各有一个花坛,为
更好地呵护花坛中植物的生长,需要实时了解它们的环境温
度及土壤湿度,且数据能够同时在一个显示器上查看。
小贴士
当一个装置中需要多
块开发板来分担任务,
或当一块开发板上需要通
过一个接口与多个器件交
换数据时,可采用串口数
据总线,如 或串行外
2
I C
围 接 口(
图3-6 智能园艺装置设计草图
Serial Peripheral
,简称 )的方
Interface SPI
式来连接。
参见 知识链接“数
P72
据接口的常见类型”
图3-7 智能园艺系统结构图
活 动
参考上面的样例,将自己的想法转变为智能园艺装置的初步设计。
5.3
66第三单元 开源硬件项目设计与开发
( )选择器件
小贴士
2
同一功能可以通过不同器件来实现,选择器件前应先了
应该充分结合被监测
解并比较各类硬件产品的型号、规格、应用场合及使用的方
植物的特性及测量器件的
式方法。设计方案时,可依据初步设计中的信息系统结构图
工程技术特性来选择数据
从信息输入(传感器)、信息处理(微控制器)、信息传输 检测器件。例如,如果检测
及信息输出(显示器件)等几方面综合考虑,结合工程、技术、 对土壤湿度较为敏感的植
物,则需要选择测量湿度
数学、科学等学科知识来开展选择。
精度较高的器件。
例如,依据传输的距离,数据的无线传输模块有很多种,
常见的如表 所示。
3-3
表3-3 常见的无线传输模块
无线传 传输 传输 传输 适配的微控 性能特点(从工程、数学、
传输频率 价格
输模块 距离 方向 方式 制器类型 科学、技术等角度)
米 单向 点对点 较低 信号强,穿透、绕射能力强
433 100 433MHz Arduino
适应温度在 ℃~ ℃,
一点对 、 -20 70
米 双向 415MHz Arduino 较高 信号强,传输距离长,穿透、
APC220 1000 多点 ~ 树莓派等
455MHz 绕射能力强
适应温度在 ℃ ℃,
、树 -20 ~ 70
Arduino 低功耗,短距离传输过程中
蓝牙 米 双向 点对点 莓派、 机、 中等
10 2.4GHz PC 衰减大,信号穿透、绕射能
智能手机等
力弱,信号容易被物体遮挡
活 动
选用合适的器件来支持自己的智能园艺装置的初步设计,并完成表 的填写。
5.4 3-4
表3-4 智能园艺装置器件表
器件名称 需求 选用型号 适配的微控制器类型
测量温度范围为 ℃~ ℃,
温度传感器 0 100 温度传感器
价格较低,使用简便 LM35 Arduino
67开源硬件项目设计
( )可行性验证实验
3
选择的器材能否支撑完成预期的功能?在本项目
中,需要重点考虑三方面:①传感器采集数据的可行
小贴士
性,②无线数据传输的可行性,③数据的处理与显示功能。
第一次选用新器件时, 例如,选用 板作为微控制器来验证 无线传输
UNO 433
通常会预备至少两个,然 模块能否实现数据(控制命令)点到点的传输功能。发射端
后用最简单的代码测试其功
输出自然数序列,接收端接收后,最终在串口监视器中显示
能。若不出现预期效果,且
(图 )。发射端和接收端的连线如图 、图 所示。
连线、代码等都检查无误, 3-10 3-8 3-9
则要更换一个器件来实验。
若备用的器件也出现问题,
可以尝试使用万用表、示波
器等专业设备进行检测。
图3-8 发射端连线图
数字化学习
打开配套资源,学习范
例的可行性验证实验。
在网上搜索或在开源社
区中学习 、 等无
APC220 433 图3-9 接收端连线图
线传输模块的使用方法。
图3-10 接收端接收的自然数序列
68第三单元 开源硬件项目设计与开发
活 动
开展数字化学习,了解相关可行性验证实验的开展方法并进行实验;将
5.5
实验过程记录在表 中。
3-5
表3-5 可行性验证实验记录单
实验名称 实验目的 预期效果 实际效果 结论或发现
实验 :
1
验证 无线 验证无线传输 能够在接收端收到
433
传输模块的性 模块的可用性 发射端发出的数据
能
( )详细设计
4
可行性验证实验过程中,若器件不能实现预期的功能,
数字化学习
需要更改器件或调整初步设计方案;若能,就需要构建系统
打开配套资源,学习范
的详细设计方案。在此过程中,由于本项目连接的器件较多,
例的详细设计方案。
需要考虑开发板的引脚是否足够,装置能否适应将来的工作
环境,如何保证给装置安全、稳定地供电,与器件配套的库
文件能否在一个项目文件中完成编译,采用怎样的连线方式
能够让装置高效运作等具体问题。
活 动
根据初步设计及选择的器件,完成智能园艺装置的详细设计方案,绘
5.6
制电路连接图。
69开源硬件项目设计
实现数据的采集及无线传输
3.
( )制作原型
1
根据已完成的详细设计方案,利用选择的器件,连接电
路,搭建智能园艺装置原型。图 和图 是根据设计
3-11 3-12
方案 搭建的装置原型。
1
土壤湿度
传感器
433无线 无线
433
传输模块 传输模块
图3-11 智能园艺装置发射端原型 图3-12 智能园艺装置接收端原型
( )编写程序
2
在原型的基础上,编写控制程序,实现智能园艺装置预
设的功能。首先要将系统的功能划分为若干模块,确定各模
块间传输数据的类型、各模块间的逻辑关系及功能点。然后
绘制模块或系统的程序示意图。
图 是设计方案 的功能模块图,分为检测端和显
3-13 1
示端两大模块。
小贴士
如果没有达到预计的效
果,可以从检查程序有无语
法或者逻辑错误、器件是否
正确连接、器件是否完好等
图3-13 设计方案1的功能模块图
方面进行复查。
此外,也可以到开源社
在绘制完成各模块程序示意图的基础上编写程序。将编
区寻求解决方法。
写完成的程序上传,进行测试,检查能否达到预计效果。
70第三单元 开源硬件项目设计与开发
( )外观设计及优化
3
智能园艺装置的检测端一般放置在户外,需要应对露天
的各种严苛条件,如雨水浇淋、阳光暴晒、大风吹刮等。所
以设计装置的外观结构及造型时,必须要考虑到这些因素,
保证装置能够持续、稳定地工作。图 是某学生设计的
3-14
智能园艺装置的外观。
图3-14 某学生的智能园艺装置外观设计图
活 动
完成智能园艺装置的制作并进行优化。
5.7
( )根据自己的详细设计方案搭建智能园艺装置的原型,并总结在该过程
1
中遇到的问题。
( )将程序分解为各个功能模块,绘制程序示意图并编写程序。
2
( )完成作品的外观设计制作,为其拍摄照片或者视频。
3
( )整理作品设计制作过程中的相关文档,包括设计草图、程序文档、材
4
料清单等,并将其分享到校园开源社区中。
知识链接
无线数据传输
在利用开源硬件设计项目的过程中,常常会遇到将多个子系统关联到一起,构成一个
功能较复杂或较大型的信息系统的情况。这时,人们通常会采用无线数据传输技术来连接
多个子系统。
常见的无线数据传输方式有基于射频无线模块的直连和基于 模块的 连
Wi-Fi TCP/IP
接。在具体选用时, 米以内的点对点传输可以采用 、蓝牙模块;十几米到几百
10 433
71开源硬件项目设计
米的传输可以采用 、 模块; 米到几千米的传输则可以采用 或
433 HC-11 1000 APC220
模块。
nRF24L01
数据接口的常见类型
开发板上的相关引脚组合在一起构成了数据接口。常见的数据接口有串行接口、
SPI
接口、 接口,以下以 板为例进行介绍。
2
I C UNO
串行接口: 板上的数字引脚 ( )和 ( )组成串行接口, 表示
UNO 0 RX 1 TX TX Arduino
发送指令信息给接收端, 表示 接收来自发射端的指令信息。
RX Arduino
接口:可用来扩展数字引脚,也可用来连接 网络模块。 板上的
SPI nRF24L01 UNO
、 、 和 号引脚组成 接口。 接口主要用于串行数据的传输,传输速度比
10 11 12 13 SPI SPI
和 串行接口更快。而 接口主要用于连接 机,从 下载和调试程序。下
TX RX USB PC IDE
载程序时, 板上 和 的指示灯会不停地闪烁。
Arduino TX RX
接口: 板上的 和 两个模拟引脚组成 接口,用于连接 总线。
2 2 2 2
I C UNO A4 A5 I C I C I C
接口主要用于多块 开发板之间的连接和与外部模块的通信。
Arduino
总线是一种简单的串行总线,用于串接多个开发板或传感器。如图 所示,它
2
I C 3-15
由两根线组成,一根是时钟线( ),另一根是数据线( )。凡是遵循 协议的器
2
SCL SDA I C
件都可以通过总线来双向传递信息,但在所有串接的器件中只有一个是主器件,用以启动
或终止数据传送,其余的器件为从器件。
主器件 从器件 从器件
2 4
总线
从器件 从器件
1 3
图3-15 I2C总线结构
的核心是相对简单的单片机,数据处理的能力并不是很强,因此,串行接口
Arduino
的使用频率较高。
72第三单元 开源硬件项目设计与开发
拓展阅读
物 联 网
物联网( ,简称 )是新一代信息技术的重要组成部分,指的是“物
Internet of Things IoT
物相连的互联网”,被视为互联网的应用扩展。这其中有两层含义:第一,物联网的核心和
基础仍然是互联网,是在互联网基础上的延伸和扩展;第二,其用户端延伸和扩展到了任何
物品与物品之间,它们进行信息交换和通信。因此,物联网也可定义为通过射频识别(
Radio
,简称 )、红外感应器、全球定位系统、激光扫描器等信息传感设备,
Frenquency Identification RFID
按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、
定位、跟踪、监控和管理的一种网络。本项目中提供的设计方案 就是一个典型的物联网实例。
2
和传统的互联网相比,物联网至少具有三个关键特征:一是各类终端实现“全面感知”;
二是电信网、互联网等融合实现“可靠传输”;三是云计算等技术对海量数据“智能处理”。
物联网最大优势在于各类资源的“虚拟”和“共享”,这也与通信网发展的扁平化趋势相契合。
根据物联网对信息的感知、传输、处理和应用的过程,可将物联网体系划分为感知层、网
络层和应用层。具体结构如图 所示。
3-16
图3-16 物联网体系结构
——摘自《大话物联网》
73项目六
设计制作无人船模型
——利用输出数据驱动执行装置
近年来,随着技术的发展,一些环境监测机构尝试利用无人船
监测水质。比起过去靠人工驾船到相关水域进行采样,无人船监测
更能节省成本,提高效率,还可以到达有潜在危险的水域,如污染
区和深水区等。除了可以通过遥控器或地面控制基站操控外,有些
水质监测无人船还具备自主导航和自动避障功能。另外,无人船在
水域测绘、资源勘探、水上救援、海岛巡逻、货物运输等领域都可
以大展身手(图 )。
3-17
那么,能否利用开源硬件,设计制作一艘小巧轻便、操作简易
的无人船模型?与之前的智能园艺项目不同的是,无人船需要利用
输出数据驱动执行装置,实现船的前进、后退、转向等。
图3-17 我国的无人艇和科考船在南极进行探测工作
项目学习目标
在本项目中,我们将利用开源硬件设计制作一艘无人船模型。
完成本项目学习,须回答以下问题:
如何根据对船的特征分析,设计基于开源硬件的无人船模型
1.
方案?
船的控制方式有哪些?如何根据自己的需要选择恰当的动力
2.
方式?
用输出数据驱动执行装置的方法有哪些?
3.
如何实现简单信息系统的自动控制?
4.第三单元 开源硬件项目设计与开发
项目学习指引
提出想法
1.
无人船多在各种复杂水域环境中航行,它应该具有哪些
必备功能?哪种控制方式使得船易于操控?这些功能又该如
何使用开源硬件来实现?我们可以从信息系统构成的角度出
发来提出问题(图 )并开展设计。
3-18
●如何获取无人船 ●选择哪种开发板 ●如何控制船的前
的操控信息? 最合适? 进、后退、转向?
●…… ●如何判别输出的 ●……
信息?
●……
图3-18 提出问题
为了更好地实现无人船的设计方案,可从科学、技术、
艺术与数学等多维度提出思考的问题,并协作开展探究。
●无人船的航行环境可能是浅水区、水草区等,如何设计船体来适应这些环境?
●无人船需要多长的续航时间?可采用怎样的供电方式?
●哪些因素会影响无人船的平衡?外形结构、船体上器件的布局或其他?
●如何控制无人船的航行?是否需要无线遥控?
●无人船是否需要自动巡线航行功能?如何实现?
●无人船航行的动力如何产生?
活 动
为了设计无人船,需要学习有关的基础知识。请完成表 的填写。
6.1 3-6
表3-6 自主学习的基础知识
我学习的知识主题 作 用
船的动力来源 确定选用的动力系统类型和船的驱动方式
75开源硬件项目设计
活 动
确定无人船的基本功能需求和约束条件,并填入表 中。
6.2 3-7
表3-7 无人船的基本功能需求和约束条件
基本功能需求 约束条件
能在浅水区或水草区航行 水草或风浪会对船的航行产生巨大阻力
无线遥控,目视范围内操作 控制信号的传输距离在 米以内
30
根据应用情境设计系统
2.
( )初步设计
1
设计无人船的核心问题是如何让数据通过信息系统去驱
参见 知识链接“自 动执行装置。例如,数据从遥控装置端通过无线传输发送到
P85
动控制” 无人船,然后被转换为控制执行装置的数据。这个过程中的
数据可以是人工控制发送,也可以是自动控制发送。
本作品可以从遥控装置和无人船两个部分进行设计。无
小贴士 人船系统基本构成如图 所示。
3-19
遥控装置设计的基本要
求是高性能、低成本、运行
平稳、控制灵活、线路简单、
抗干扰能力强。
图3-19 无人船模型系统初步设计图
无线遥控的方式有多种,无线数据传输的方式也有多种,
最终的方案需要根据自身的技术条件、现有工具、器件并结
合作品功能设想等来决定。
76第三单元 开源硬件项目设计与开发
?
? 数字化学习
思考与讨论
常见的遥控船模型的控制方式是带有方向杆 上网了解并自学船的
和速度杆的遥控器,还有其他的控制方式吗? 运动方式及相关的控制知
识,甚至可以借鉴开源社
区中较为成熟的设计方案,
但一定要标明原作者及相
以下为两位学生根据不同的应用情境设计的两种初步设
关改进者的信息。
计方案。
设计方案1
应用情境:无人船利用船尾螺旋桨的旋转推动空气来驱 小贴士
动,它能在浅水区以固定速度在目视范围内航行。
两位学生设计的都是空
气动力船(又称风动船),
即在船上安装带扇叶的电机
和舵机。电机旋转产生动力
来推动船的前进,通过风扇
的正转、反转实现船的前进
或后退;舵机转动实现船的
转向。
图3-20 无人船模型设计草图
遥控装置
运动装置
图3-21 无人船模型系统结构图
77开源硬件项目设计
设计方案2
应用情境:无人船利用船尾螺旋桨的旋转推动空气来驱
参见 知识链接“动 动,能在浅水区航行且速度可调,还具有视频采集和回传的
P84
力器件的供电与控制
功能;当船超出无线遥控的范围后,会自动返回出发点。
方式”
图3-22 无人船设计草图
遥控装置
视频查看装置
运动及视频采集装置
图3-23 无人船模型系统结构图
活 动
参考上面的样例,将自己的想法变为无人船模型的初步设计。
6.3
78第三单元 开源硬件项目设计与开发
( )选择器件
2
小贴士
根据初步设计,首先选择合适的开发板,然后选择其他
器件。选择其他器件时注意考虑与开发板的匹配性。 舵机的选择可以从旋转
执行装置一般会有特定的工作要求,不同的器件适配的 角度、尺寸、适配的微控制
器类型、价格、性能特点等
微控制器类型不一样。电机是本项目中执行装置的主要部分,
方面综合考虑。
可按照工作电压和工作方式划分为不同的种类(表 )。
3-8
表3-8 两种电机的比较
转速 适配螺
额定 性能特点(从工 适配的
尺寸 (r/min表 旋桨 价
电机 图片 电压 程,数学、科学、 微控制
(mm) 示每分钟 孔径 格
( ) 技术等角度) 器类型
V 旋转圈数) (mm)
电流低、转速高、
空心杯 适 低压启动、低噪
× ×
电机 20 7 7 3.7 45000 1 中 音、损耗低、电机 Arduino
效率高、节能省电
微型
较 转速较低、价格
小 × ×
130 20 15 38 1~6 17000 2 低 低廉 Arduino
电机
活 动
根据无人船模型的初步设计,选用合适的器件并填入表 。
6.4 3-9
表3-9 无人船模型器件表
器件名称 需 求 选用型号 适配的微控制器类型
79开源硬件项目设计
( )可行性验证实验
小贴士
3
选择好器件后,要验证设计是否合理,器件是否合适。
为避免烧毁开发板,
在本项目的设计方案 中,可能需要验证的是:①微控制器
一般使用电机驱动模块为电
1
如何控制电机,②遥控装置如何控制方向和速度,③无线数
机供电及驱动,而不直接用
板供电。 据装置如何传输速度和方向等信息。
UNO
无线数据传输的相关内 以验证空心杯电机为例,若以 板来控制,验证实
UNO
容可参见项目五“设计制作
验的连接电路图及测试效果分别如图 和 所示。
智能园艺装置”。 3-24 3-25
数字化学习 图3-24 空心杯电机连接电路图
查看教材资源配套网 扇叶
站上的相关内容,了解摇杆
空心杯电机
无线控制装置的搭建及验证
方法。
电机驱动模块
图3-25 空心杯电机测试效果
活 动
根据自己的初步设计方案,开展可行性验证实验,用表 记录实验过程。
6.5 3-10
表3-10 可行性验证实验记录单
实验名称 实验目的 预期效果 实际效果 结论或发现
实验 :验证 了解开发板控制 空心杯电机正常
1
空心杯电机的 空心杯电机的工 旋转,能够正转
控制方法 作方法 及反转
80第三单元 开源硬件项目设计与开发
( )详细设计
4
可行性验证实验完成后,需要进一步考虑方案的细节内
容,如遥控杆的数量,开发板的哪个引脚可用于速度控制,
哪个引脚可用于方向控制,如何连线能避免电机和舵机的相
互干扰等。
数字化学习
打开配套资源,学习范
活 动 例的详细设计方案。
根据初步设计及选择的器件,完成无人船模
6.6
型的详细设计方案,绘制电路连接图。
实现数据驱动的动力控制
3.
( )制作原型
1
根据详细设计方案制作无人船原型的过程中,必须考虑
整个系统供电的稳定性。因为供电的不稳定会直接影响整个
系统的运行。另外,还要考虑运动装置原型的结构尺寸,使
其能装入船体或平稳搭建在船体上。
图 和图 是根据设计方案 搭建的无人船原型。
3-26 3-27 1
无线
遥控杆 433
传输模块
电机驱
动模块
舵机
变压模块
图3-26 无人船遥控装置原型 图3-27 无人船运动装置原型
81开源硬件项目设计
( )编写程序及测试
2
无人船系统工作的流程:输入速度或方向等控制信息,
微控制器对输入的信息进行处理,然后无线传输至无人船的
执行装置,使无人船的速度和方向等作出相应的调整。本项
目的程序设计可以从数据流入手,明确每个模块间传输的数
据类型及流向。
无人船的程序可分为遥控装置和无人船两部分。设计方
数字化学习
案 的功能模块如图 所示,数据流如图 所示。
1 3-28 3-29
网上搜索或查看配套
遥控装置模块 无人船运动装置模块
资源,了解脉冲宽度调制
( ,
Pulse-Width Modulation
简称 )的原理、功能
PWM
及应用方法等。打开配套资
源,查看范例的程序。
图3-28 设计方案1的功能模块图
图3-29 设计方案1 的数据流
小贴士
绘制好各模块程序示意图后,在其基础上编写控制程序。
由于本设计方案中的 将编写完成的程序上传、测试,检查能否达到预计效果。由
无人船需要同时完成多个任
于尚未设计船体,无人船此时的测试结果只能看到电机和舵
务,例如数据传输和执行装
机是否转动。
置控制,因此程序中要适当
运用多任务机制。根据选 ? ?
思考与讨论
用硬件的不同,通常有轮
询、异步、多线程(也称并 如何合理规划算法和控制逻辑,让速度信息
行)几种程序设计方法。以 和方向信息互不干扰?
为例,由于它不支
Arduino
持多线程和异步机制,所以
常用轮询的方法来实现多任 ( )外观设计及优化
3
务。具体方法及程序详见配 保证无人船顺利航行的一个关键点是船体的平衡性,即
套资源。
所有器件的布局应该满足无论船体在何种运行状态下始终都
能稳固且平衡的条件。
82第三单元 开源硬件项目设计与开发
那么,选用何种材料来制作船体?船体可以设计成怎样
数字化学习
的形状?如何布局各器件在船体上的位置,能使无人船兼具
较高的稳定性、实用性和艺术性?这些都是制作船体外观时 打开配套资源,查看范
例无人船船体的制作过程。
必须考虑的问题。图 是某位学生根据设计方案 ,利
3-30 1
用身边的材料制作的无人船作品。
图3-30 用塑料瓶、冰棍棒制作的船体和遥控装置
?
?
思考与讨论
除了案例给出的用塑料瓶和冰棍棒做船体,
1.
还有哪些材料可用来制作船体?
无人船航行过程中,难免会有水溅湿电子
2.
器件的情况,该如何避免?
活 动
完成无人船模型的制作并进行优化。
6.7
( )根据自己的详细设计方案搭建无人船原型,并总结搭建过程中遇到的问题。
1
( )将程序分解为小的功能模块,绘制每个模块的核心示意图并编写相应的
2
程序。
( )将完成的无人船模型放入水中试航,测试作品的效果。为无人船拍摄照片
3
或视频,将其与程序及设计文件等一起分享到校园开源社区中。
83开源硬件项目设计
知识链接
动力器件的供电与控制方式
开源硬件中,动力器件作为执行装置的一种,与其他器件(如蜂鸣器、 等)相比
LCD
有一个显著的区别,即它需要较大且稳定的工作电流。以 开发板为例,由于板载
Arduino
引脚所能提供的电流很小,一般无法让动力器件维持在稳定的工作状态,因此需要通过相
关技术手段加以解决。蜂鸣器等供电与控制方式如图 所示。
3-31
图3-31 蜂鸣器等供电与控制方式
以动力器件中常用的电机为例,一般会采用添加电机驱动模块的方式来给电机提供稳
定的电流和合适的电压,此时微控制器只能通过电机驱动模块来间接控制电机的工作状态,
如图 所示。在设计连线图时要确保微控制器的地线与电机驱动模块的地线相连,使
3-32
它们的参考电平相同,这样电机驱动模块才能够识别控制信号。
图3-32 电机供电与控制方式
舵机是另一种常用的动力器件。不同型号的舵机,对电压和电流的要求也不同,一般
需要添加直流变压模块等器件来为舵机提供合适的电压和稳定的电流,而微控制器可以通
过引脚直接控制舵机的工作状态,其供电与控制方式如图 所示。
3-33
图3-33 舵机供电与控制方式
84第三单元 开源硬件项目设计与开发
自动控制
自动控制是在人工控制的基础上发展起来的,它是在系统设备上配置一些自动控制的
装置,对生产或运行过程中重要的变量进行控制,使得系统能够自动地维持预定运行状态。
为了实现自动控制,需要让控制系统的输出数据与参考输入数据进行比较,随后系统
利用差值进行自身调节,这一过程通常会用 ( )控
PID Proportion Integration Differentiation
制器来完成。 是一种经典的闭环控制理论,其中 代表“比例控制”, 代表“积分
PID P I
控制”, 代表“微分控制”。 能够让一个系统(一辆车、一架飞机或一个机器人等)
D PID
快速地达到某个设定的状态(如 的速度、 的悬停高度等)。
0.5m/s 3m
观察图 所示的一个自动控制系统,一块板架在一个支架上,下端附有一个重物。
3-34
让风扇的风吹向板的上端,让板的下端靠近超声波传感器。
电机
电机驱动模块
板
支架 超声波传感器
UNO板
10cm
重物
图3-34 一个自动控制系统
要想让板的下端与超声波传感器的距离稳定在 ,该如何控制呢?如果简单地以
10cm
为阈值决定是否启动风扇,并不能令系统达到稳定的状态,因为一旦到达阈值,电
10cm
机会完全停止,所以只能是让板不停地来回摆动。显然,以 为阈值,风扇吹出的风
10cm
力(假设风扇功率足够大)与重物到超声波传感器的距离成比例( 控制),距离越远,
P
风力越大;距离越近,风力越小。当距离值与 阈值之间的差值足够小,以至于比例
10cm
控制不能精准调节时,则需要用到时间积累偏差( 控制)。将第一次循环测到的偏差加
I
上第二次循环测到的偏差,不断重复此过程,直至差值为零。
以上系统中只用到了 和 控制。 和 控制
P I P I
如图 所示。 用于修正突变或过冲,即短时 偏
3-35 D 差
间内偏差值发生的较大变化。大多数系统都能接
值
受过冲,例如小车,过冲时转弯的幅度大些,很
快能扭转过来。但是,某些需要精确控制的情况,
如溶液浓度或鱼缸温度不能接受过冲的出现,此
时需要使用到 。实际应用中, 用得比较少, 控制 控制 时间
D D P I
多数情况下 和 就足够了。 图3-35 P和I控制图
P I
85开源硬件项目设计
拓展阅读
开环控制和闭环控制
图 是一辆使用开源硬件搭建的平衡车,它在运行过程中需要自动(而非人为)保持
3-36
自身的平衡不倒下。这个过程使用了一种叫作闭环控制的控制方法。目前市面上已有大量的平
衡车产品,如图 所示。
3-37
图3-36 开源平衡车 图3-37 平衡车产品
闭环控制是根据控制对象输出反馈来进行校正的控制方式,它是在测量出实际与计划发
生偏差时,按定额或标准来进行纠正的。与之相对的是开环控制。图 和 分别是闭
3-38 3-39
环和开环的控制示意图。
图3-38 闭环控制示意图
图3-39 开环控制示意图
本项目设计方案 的无人船是开环控制,控制信息是单向输出的,不存在反馈信息回传;
1
而平衡车需要把输出的控制信息传回到输入端,结合收集到的偏差信息(如车要倒了)重新
计算并生成控制指令发送出去,这样形成一个闭环控制,达到让小车保持实时平衡的目的。
86第三单元 开源硬件项目设计与开发
单元挑战 设计制作远程快递收件盒
一、项目任务
生活中,人们网购的无论是日常用品,还是学习材料等物品,物流服务都能将它们快
捷地送达。然而,难免会遇到快递员送货上门,主人不在家的情况。
能否利用开源硬件设计制作一个互联网远程快递收件盒,将其放在自己的家门口,实
现远程收取快递的功能,从而解决收快递难的问题?
二、项目指引
小组头脑风暴,提出作品的应用功能,去除不明确或不必要的功能,将确定的核心
1.
功能以恰当的方式描述出来。
根据核心功能,设计基于开源硬件的信息系统,形成作品的初步设计方案,并明确
2.
各组成模块及数据在模块间的流向。
细化初步设计的各个模块,然后据此选择合适的器件并开展可行性验证实验,最终
3.
形成详细设计方案。在这个过程中,可能会出现反复调试的情况,若有必要,可以考虑修
改或调整设计方案。
根据详细设计方案,搭建远程快递收件盒原型,编写程序来实现其功能。
4.
原型实现预设的功能后,尝试给作品设计外观,实现其产品化。这个过程中需要考
5.
虑机械组件如何与电控部分结合。
三、交流评价与反思
每个小组派出代表,用自己熟悉的信息表达工具展示作品设计制作的过程(包括设计
文件和程序等)。仔细观看其他组作品展示的过程,听取他人对自己小组作品的意见或建议,
然后据此进一步优化作品。
我们小组遇到的问题:
采用的解决方案:
87开源硬件项目设计
单元小结
一、主要内容梳理
二、单元评价
评价内容 达成情况
能够充分利用数学、科学、技术等学科知识来支撑智能园艺装置和无人船模型的设计
与开发( )
A
能够通过数字化学习,分析园艺监测和无人船的特点,设计基于开源硬件的信息系统
方案( 、 、 )
A T R
能够根据设计方案选择恰当的开源硬件并验证设计的可行性( 、 )
T I
能够根据需要选择恰当的无线数据传输方法( )
T
能够根据智能园艺装置和无人船模型的设计方案制作原型并实现数据的输入、处理及
输出( 、 )
T I
能根据需要设计数据驱动电机和舵机执行装置的方案( 、 、 )
T I R
能利用编程语言实现外部数据的输入与处理,将处理后的数据用于驱动执行装置的运
行( )
T
了解开源硬件信息系统自动控制的原理( 、 )
A I
能够与同伴交流分享学习资源,协作完成设计与开发,践行开源知识分享的精神( 、 )
I R
说明: —信息意识, —计算思维, —数字化学习与创新, —信息社会责任
A T I R
88附 录
部分名词术语中英文对照
(以汉字拼音字母次序为序)
比例积分微分 ,
Proportion Integration Differentiation PID
传感器
sensor
串行外围接口 ,
Serial Peripheral Interface SPI
发光二极管 ,
Light Emitting Diode LED
集成开发环境 ,
Integrated Development Environment IDE
开源协议
open source license
开源软件
open source software
开源社区
open source community
开源硬件
open source hardware
开源硬件协会 ,
Open Source Hardware Association OSHWA
两线式串行总线 ,
2
Inter-Integrated Circuit I C
脉冲宽度调制 ,
Pulse-Width Modulation PWM
射频识别 ,
Radio Frequency Identification RFID
通用公共授权 ,
General Purpose License GPL
微控制器
microcontroller
物联网 ,
Internet of Things IoT
液晶显示器 ,
Liquid Crystal Display LCD
优化
optimize
有机发光二极管 ,
Organic Light Emitting Display OLED
原型
prototype
知识共享 ,
Creative Commons CC
中断
interrupt
89PUTONG GAOZHONG JIAOKESHU 普 普通高中教科书
通
XINXIJISHU
高
中
教 信信息息技技术术
科
书
信信
息息
选择性必修 6
技技
术术
开源硬件项目设计
选
择
性
必
ISBN 978-7-5428-7415-3
修
6
ISBN 978-7-5428-7415-3 开
9 787542 874153>
源
硬
件
项
9 787542 874153>
目
设
计
普通高中教科书
信息技术 选择性必修6
开源硬件项目设计
上海科技教育出版社有限公司出版发行
普通高中教科书
(上海市闵行区号景路 弄 座 楼 邮政编码 )
信息技术 选择性必修6 159 A 8 201101
湖南省新华书店经销 湖南长沙鸿发印务实业有限公司印刷
开源硬件项目设计
开本 印张
上海科技教育出版社有限公司出版发行 I8S9B0N×197284-07-5142/186-7415-3 6
年 月第 版 年 月第 次印刷
(上海市闵行区号景路 弄 座 楼 邮政编码 ) 2021 1 1 2021 12 3 上
湖南省新华书店经销 湖 1 南 59 长沙 A 鸿 8 发印务实业有 2 限 01 公 10 司 1 印刷 ISBN978-7-5428-7415-3/G·4353 海
定价: 元 科
开本 890×1240 1/16 印张 6 批准文号:湘发改价费〔 7 〕 .88 号 举报电话: 技
年 月第 版 年 月第 次印刷 9 7872504127837443153> 12315 教
2021 1 1 2021 12 3 育
ISBN978-7-5428-7415-3/G·4353 出
定价: 元 此书如有印、装质量问题,请向印厂调换 版
7.88
批准文号:湘发改价费〔 〕 号 举报电话: 印厂地址:长沙黄花印刷工业园三号 电话: 社 上海科技教育出版社
2017 343 12315 0731-82755298
此书如有印、装质量问题,请向印厂调换
印厂地址:长沙黄花印刷工业园三号 电话:
0731-82755298
普通高中教科书
信息技术 选择性必修6
开源硬件项目设计
上海科技教育出版社有限公司出版发行
(上海市闵行区号景路 弄 座 楼 邮政编码 )
159 A 8 201101
湖南省新华书店经销 湖南长沙鸿发印务实业有限公司印刷
开本 印张
890×1240 1/16 6
年 月第 版 年 月第 次印刷
2021 1 1 2021 12 3
ISBN978-7-5428-7415-3/G·4353
定价: 元
7.88
批准文号:湘发改价费〔 〕 号 举报电话:
2017 343 12315
此书如有印、装质量问题,请向印厂调换
印厂地址:长沙黄花印刷工业园三号 电话:
0731-82755298