普通高中教科书·信息技术选择性必修6 开源硬件项目设计(沪科技版2019).pdf
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
7 0人已下载
| 下载 | 加入VIP,免费下载 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 普通高中教科书·信息技术选择性必修6 开源硬件项目设计沪科技版2019 普通高中 教科书 信息技术 选择性 必修 硬件 项目 设计 科技 2019
- 资源描述:
-
1、开源硬件项目设计普通高中教科书上 海 科 技 教 育 出 版 社选择性必修 6信息技术信息技术普通高中教科书选择性必修6开源硬件项目设计信息技术信息技术上海科技教育出版社PUTONG GAOZHONG JIAOKESHUXINXIJISHU普通高中教科书信息技术选择性必修6开源硬件项目设计上海科技教育出版社有限公司出版发行(上海市闵行区号景路 159弄A座8楼邮政编码201101)湖南省新华书店经销湖南长沙鸿发印务实业有限公司印刷开本89012401/16印张62021年1月第1版2021年12月第3次印刷ISBN 978-7-5428-7415-3/G4353定价:7.88元批准文号:湘发改
2、价费2017343号举报电话:12315ISBN 978-7-5428-7415-39 787542 874153此书如有印、装质量问题,请向印厂调换印厂地址:长沙黄花印刷工业园三号电话:0731-82755298此书如有印、装质量问题,请向印厂调换印厂地址:长沙黄花印刷工业园三号电话:0731-82755298ISBN 978-7-5428-7415-39 787542 874153此书如有印、装质量问题,请向印厂调换印厂地址:长沙黄花印刷工业园三号电话:0731-82755298普通高中教科书上 海 科 技 教 育 出 版 社信息技术选择性必修 5开源硬件项目设计选择性必修 6编写人员名单
3、主 编:郑 骏 分册主编:季 隽主要编写人员(以姓氏笔画为序):刘 帅 胡 杨 傅 瑛欢迎广大师生来电来函指出教材的差错和不足,提出宝贵意见。上海科技教育出版社地址:上海市闵行区号景路 159 弄 A 座 8 楼 邮政编码:201101 联系电话:021-64702058 邮件地址:亲爱的同学:大众创业、万众创新的时代已经到来,创客文化正蓬勃发展,基于开源硬件的创新作品如雨后春笋般不断涌现。利用 Arduino 和树莓派等开源硬件,即便不具备深厚专业知识的你,也能成为设计开发者,提高基于信息技术的创新能力。在开源硬件项目设计的学习中,我们将带领你通过剖析真实的开源硬件作品来了解开源硬件的功能和
4、特征;从简单项目入手,体验开源硬件项目设计的一般流程;通过设计开发贴近生活的项目作品,理解和应用开源硬件实现信息输入、处理和输出的方式。在项目实践过程中,你将学会综合运用科学、技术、数学、工程及艺术等学科的知识解决问题。为了让你在学习开源硬件项目设计的过程中获得更大的成功,请浏览本书的栏目介绍。单元引言、学习目标和单元挑战从生活经验出发引入本单元将要学习的内容,提出本单元学习要达成的学习目标,预告学习完本单元后要接受的单元挑战。项目引言和学习目标描述项目产生的背景和意义,介绍项目学习的主要内容,并提出一些具体问题,引导你带着问题探究。项目学习指引 通过剖析真实的项目实施过程,帮助你了解学科思想
5、方法,理解相关概念,掌握具体技能。解释一些重要概念和术语,或提示相关知识和技术,帮助你抓住重点,扫除认知障碍。写给学生的话核心概念和小贴士提出若干问题引导你对技术背后的原理以及人、信息技术与社会的关系等进行思考和讨论。引导你利用网络、数字化工具和数字资源进行学习。提出活动任务,并引导你运用所学知识,使用信息技术工具进行探究、总结和展示。系统整理和归纳本项目的知识要点,方便你学习。补充更丰富的阅读材料,开阔你的视野。布置面向真实情境的项目任务,希望你综合运用本单元所学的知识与技能去解决问题。用思维导图可视化呈现本单元的知识脉络,提供基于学科核心素养的评价表,为你的学习表现进行自我评价。在学习过程
6、中,希望你勤实践体验、多思考讨论,借助各种数字化工具、资源进行学习与创新,不仅要理解和掌握具体的信息技术知识与技能,还要把握用信息技术解决问题的思想方法,并思考将信息技术应用于社会时所引发的各种挑战,以开放、包容的心态与信息技术、信息社会一起进步。编 者单元挑战拓展阅读知识链接活 动数字化学习单元小结?思考与讨论?目 录第一单元 开源硬件与信息技术创新.1项目一 探究开源硬件作品了解开源硬件的特征和价值.21.认识开源硬件.32.了解常见开源硬件的功能.53.探究开源硬件的价值.7知识链接.10项目二 设计制作交通信号灯了解开源硬件项目设计的一般流程.141.提出想法.152.设计系统解决方案
7、.163.利用开源硬件实现解决方案.20知识链接.22单元挑战 设计制作小夜灯.27单元小结.28第二单元 基于开源硬件的信息系统.29项目三 设计制作低头报警器实现数据的输入、处理与输出.301.提出想法.312.设计基于开源硬件的信息系统.313.实现数据的采集、运算处理和输出.37知识链接.40项目四 设计制作自行车里程仪体验作品的迭代优化.441.提出想法.452.设计符合事物特性的系统.453.实现作品设计方案及其优化.51知识链接.56单元挑战 设计制作创意风扇.59单元小结.60第三单元 开源硬件项目设计与开发.61项目五 设计制作智能园艺装置体验无线数据传输.621.提出想法.
8、632.设计基于无线数据传输的系统.643.实现数据的采集及无线传输.70知识链接.71项目六 设计制作无人船模型利用输出数据驱动执行装置.741.提出想法.752.根据应用情境设计系统.763.实现数据驱动的动力控制.81知识链接.84单元挑战 设计制作远程快递收件盒.87单元小结.88附录 部分名词术语中英文对照.89我们正处在一个开放创新的信息社会中,信息的获取与分享变得与每个人息息相关。所有的人既是信息分享的受益者,也是集体智慧和信息的贡献者;既是产品的受益者,也是产品设计或改进的参与者。随着信息技术的发展,近年来涌现出一大批开源硬件,它们降低了产品开发的复杂度,使人们不用花费大量时间
9、去了解硬件的底层控制细节,从而能集中精力于设计和创造。基于开源硬件,从工程师到技术爱好者、艺术家,甚至年龄很小的学生,都能很方便地根据自己的设想或创意,制作出具备一定功能的信息系统,用信息技术实现创新。在本单元中,我们将剖析一些基于开源硬件的作品实例来认识开源硬件,了解其功能和特征;通过动手设计制作一个简单的开源硬件作品,体验使用开源硬件搭建信息系统的过程。第一单元 开源硬件与信息技术创新 认识开源硬件的特征与发展。了解常见开源硬件的功能和特征。理解利用开源硬件进行信息技术创新的意义。体验基于开源硬件项目的设计制作基本流程。践行开源与知识分享的精神,理解保护知识 产权的意义。学习目标设计制作小
10、夜灯单元挑战项目学习目标在本项目中,我们将结合一些案例了解开源硬件及利用开源硬件进行信息技术创新的意义。完成本项目学习,须回答以下问题:1.什么是开源硬件?2.常用开源硬件有哪些?3.开源硬件是如何驱动创新的?4.开源与保护知识产权矛盾吗?为什么?技术的发展使得创新的方式发生了深刻的变化,尤其是近年来因得益于开源硬件的流行,创新作品的品种及数量、产品产生的速度和频率、甚至质量等都在不断地提高。开源硬件正是创新的助推器,它所特有的开放、共享理念,让人们能够更便捷地获取和交流信息,如硬件装置的设计说明和使用说明、作品设计文件、项目灵感和创意等。在这样一种协同和共享的环境中,人们能以较低的成本支撑创
11、新,作品的开发周期大大缩减,从而提升了作品的竞争力(图 1-1)。那么,究竟什么是开源硬件?开源硬件具有哪些特征和功能?它是如何驱动创新的?项目一探究开源硬件作品了解开源硬件的特征和价值图 1-1 开源硬件带来的影响项目学习指引1.认识开源硬件开源一词最初出自软件开发中。开源软件(open source software)是指源代码开放的软件,它能够被自由地使用、修改和分发。人们所熟悉的、用于移动设备的 Android(安卓)操作系统就是一款基于 Linux 的开源软件。开源硬件由某一团队或个人设计并开发,开发完成后,开发者将该硬件的文件对大众免费开放,包括设计图、开发软件、开发文档、材料清单
12、等,世界上任何人都可以对其进行加工、修改、重新设计、生产甚至销售。随着相关文件的公开和免费分享,开源硬件逐渐吸引各类爱好者和应用者。这些爱好者、学习者,甚至技术开发人员等,都可以方便地加入到开源硬件的应用及开发中来。各类人员的加入,不仅丰富了开源硬件的功能,他们分享的创新方案、新作品给人们带来更多的创新和创意。这群具有共同爱好和兴趣的人聚集在一起交流思想和经验,分享彼此的创意和创新设计,慢慢发展形成一个开放、分享的平台开源社区。开源硬件在这种开放和分享的氛围中激发了人们的创新活力,同时自身也得到持续发展(图 1-2)。3开 源 硬 件(open source hardware)是指通过公开渠道
13、,用户可获得硬件的设计文件,并对它们的设计进行学习、修改、发布和制作。它的本质是共享硬件的设计文件以方便他人进行修改或据其制作硬件,甚至包括用于商业用途。核心概念第一单元 开源硬件与信息技术创新技术的发展爱好者、技术人员等加入需求的增加原创的开源硬件向大众免费开放 硬件电路设计图 开发软件 开发文档 制作复制权限 开源社区参见 P10 知识链接“开源硬件及其发展”图 1-2 开源硬件与开源社区 理想情况下,开源硬件要公开并分享所有的设计文件,以最大化提高他人利用的效率。小贴士开 源 社 区(open source community)由一群具有共同爱好的人组成,在社区(线上或线下)中,人们可以
14、获得他人的研究成果,同时也可以将自己的创意或研究成果等分享出来,供他人查看和使用。它是一个自由交流思想和创新成果的地方。小贴士开源硬件项目设计上网查找目前主流的开源协议(open source license),了解它们的使用注意事项或约束。数字化学习开源精神主张贡献和分享,但这并不表示开源硬件可以被任意使用而不受知识产权的保护。各种开源协议在一定程度上保护了开源硬件原作者的知识产权,赋予原作者在其作品及派生作品的传播过程中拥有包括复制权、修改权和发行权等不同的权利。因此,在使用他人的开源硬件时,应遵循原作者采用的许可要求,让后续的使用者知晓原作者和相关修改者,以及获得该硬件设计文件的途径等信
15、息。通用公共授权(General Public License,简称 GPL)和知识共享(Creative Commons,简称 CC)是人们熟悉的现有许可。例如,Arduino 的硬件设计文件使用的是 CC 许可,软件则使用的是GPL 许可。目前较为典型、应用较为广泛的开源硬件有 Arduino 和Raspberry Pi(中文名称为树莓派)。由于 Arduino 的创造者们公开了 Arduino 的硬件设计图和软件程序代码,任何人都被允许生产电路板的复制品,还能重新设计,甚至销售原设计的复制品。于是越来越多的人加入 Arduino 的改进工作中来,甚至一些大公司也发布了其他版本的 Ardu
16、ino 产品。Arduino 发展至今,已经有了多种型号,每种型号都各有特点。图 1-3 简单列举了几种有代表性的 Arduino 型号。Serial 2005 年发布 最早应用 RS-232 串口的开发板Pro Mini 2008 年发布 体积较小,适合需要焊 接并永久安装的场合UNO 2010 年发布 官 方 标 准 版,用 户友好性最好、使 用最广泛Mega 2560 2010 年开发 有更多的内存和引 脚,提供更多的功 能和更好的性能参见 P11 知识链接“开源硬件的开放与共享”图 1-3 几种有代表性的 Arduino 型号41.开源软件等同于免费软件吗?为什么?2.开源硬件与开源软
17、件有哪些不同??思考与讨论?Arduino 是 一 款 便 捷 灵活的开源电子原型平台,包含硬件(各种型号的 Arduino 开 发 板)和 软 件(Arduino IDE)。Arduino 开 发 板 有 多 种型号,除应用最广泛的 UNO板,还有体积更小的 Nano、接口更多的 Mega 等型号。小贴士第一单元 开源硬件与信息技术创新上网搜索或到开源社区查找资料,总结归纳开源硬件的特征。数字化学习活 动1.1 选择一种开源硬件开展调查,并回答问题:(1)允许任何人研究、修改、发布、制作和销售该硬件吗?(2)该硬件提供可公开访问的设计文件吗?是免费的吗?(3)如果不是所有零件或文件都开放的话
18、,能明确指出设计的哪些部分是作为开源硬件发布的,哪些部分不是作为开源硬件发布的吗?(4)未经许可能否使用原公司的商标?1.2 调查树莓派的各种型号及其发展关键事件,并制作其发展历程时间轴。2.了解常见开源硬件的功能Arduino 和树莓派等开源硬件的功能是完成信息的输入、处理及输出,适用于构建需要和物理环境交互的小型信息系统,它们是实现信息技术创新的重要途径。例如,某同学设计的“飞屋”,其控制系统就是以开源硬件 Arduino 为核心的信息系统。“飞屋”制作、演示现场如图 1-4、图 1-5 所示。图 1-4 “飞屋”制作现场图 1-5 “飞屋”升空参见 P11 知识链接“常见开源硬件的功能”
19、5Arduino 在世界范围内得以广泛应用的原因是什么??思考与讨论?开源硬件项目设计指令接收与执行装置飞行指令发送装置“飞屋”是某高中科技节上用于传送获奖名单的装置。利用开源硬件 Arduino UNO 板来控制它的飞行,使它可随着音乐节奏调节飞行的速度。如图 1-6 所示,整个“飞屋”信息系统由飞行指令发送装置、指令接收与执行装置这两个子系统组成,两个装置均由信息输入、信息处理、信息输出三个部分组成。无线模块在其中起到信息传输的作用,通过无线传输方式将两个装置(子系统)的输出和输入相连。飞行指令发送装置将操控动作通过遥控杆转变为电压变化,经由发射端微控制器处理后输出到无线模块,再通过其发送
20、出去。在指令接收与执行装置中,接收到的无线信号作为输入信息,经接收端微控制器处理,输出控制信息,控制执行装置的运行。通过以上分析可知,开源硬件 Arduino UNO 板在系统中起着接收控制信息、处理信息并输出信息来驱动执行装置的作用,它是整个信息系统的核心。图 1-6 “飞屋”信息系统6在设计和制作“飞屋”作品的过程中,会遇到工程、技术、数学、科学和艺术等多方面的挑战。工程:飞行的最大距离能够达到多少?最长的滞空时间是多少?技术:用什么技术处理信息系统中的数据?数学:怎样通过算法来消除遥控杆输入数据时产生的噪声?科学:气球灌装多少气体可以达到起飞拉力?气体为何会从气球中泄漏,如何防止或减缓泄
21、漏?艺术:怎样设计“飞屋”的造型能使其既美观又不影响性能?小贴士第一单元 开源硬件与信息技术创新3.探究开源硬件的价值现今,创新不再是少数人的专利,人人都可利用信息技术和身边容易获得的材料、开源硬件等来实现创新,开源硬件促进了发明者、制造商、学者和企业等的合作创新。利用开源硬件开展的信息技术创新项目和作品有很多,涉及的领域也很广泛,既有科学家和工程师为解决现实问题而制作的产品,也有普通中学生实现个人想法的作品,它们都体现了开发者的创新精神。这些创新作品大多分享在开源社区中,供他人查看或使用。作品一:开源无人机活 动1.3 在开源社区中查找某一开源作品或项目,查看其分享的设计文件,了解开源硬件在
22、其中的功能,并参考“飞屋”案例,简单绘制它的信息系统组成草图。然后,在学校里建立一个分享社区(线上线下均可),供同学之间分享开源作品及相关知识和创意等。1.4 有人认为,开源软件和开源硬件是公开、免费的,不受知识产权保护,这种观点对吗?在班级里围绕“开源硬件是否受知识产权保护”展开讨论。图 1-7 开源无人机 产品创意:开源减灾制图飞机,如图 1-7 所示。应用情境:当灾害发生时,需要快速绘制出灾情图,以便使援助物资快速、准确地送达受灾点和人群中。但一般灾害现场往往伴随有交通堵塞、通信中断等情况,无法借助常规手段及时有效了解灾情。7尽管开源社区是一个开放共享的场所,但使用过程中须遵守相关的开源
23、协议及网络安全要求,做信息社会的合格公民。小贴士开源硬件项目设计图 1-8 仿生手 价值:这是一款廉价、专门用来绘制灾害地图的开源无人机。它利用计算机视觉等技术识别地形和人,测量天气、烟雾及放射性数据,并将测得的数据上传到开源制图平台中。它使用开源硬件,确保世界上任何人都可以使用或改进这款无人机及其搭载的各种传感器来收集数据,帮助减灾。使用的开源硬件:使用开源飞行控制器 Ardupilot 来实现自动平飞、保持航向等功能;使用基于 Arduino 的传感器收集数据;使用树莓派处理收集到的数据。作品二:仿生手 产品创意:使用 3D 打印机轻松制作低价、定制的仿生手,如图 1-8 所示。应用情境:
24、借助仿生手,一些截肢的残障人士可以抓取各种日常生活物品,从而拥有一定的生活自理和工作能力。价值:贫困家庭,尤其是成长过程中需要频繁更换仿生手的残疾儿童家庭迫切需要一款经济实用的仿生手。开发团队利用开源的 3D 打印机为截肢的残障人士提供低价、可自定义的仿生手。他们在网站上开放仿生手的设计图、电路图、代码甚至制作的教学视频等,供需要者免费获取并自行购买材料或利用 3D 打印机按照自己的尺寸制作。使用的开源硬件:使用 Arduino 来控制仿生手,使用开源 3D 打印机制作手指、手掌等。8基于开源硬件的项目横跨众多行业,包括工业机械、农业、环境测绘、救灾、太空探索、生物技术、交通、教育、可持续性能
25、源和机器人等。人们利用开源硬件进行创新时,都会将他们的创意和与创新作品相关的资料文件分享出来,自觉践行开源的理念和知识分享的精神。小贴士在创新者和爱好者的推动下,开源 3D 打印机近年来得以蓬勃发展,它们常被用来打印定制个性化的机器零件,甚至进行小规模生产。小贴士第一单元 开源硬件与信息技术创新图 1-9 小车“巡逻兵”产品创意:小车能避开障碍物行驶,间隔固定时间(开发者设定)拍摄照片,实现自动“巡逻”,如图 1-9 所示。应用情境:某高中生外出旅游时,十分担心家里的安全,于是设计制作了一个“巡逻兵”。他在一辆能够自动避障的小车上安装摄像头,让小车在家里自由行驶,每隔 10秒自动拍摄照片,并将
26、照片上传到 Web 服务器,这样无论身处何处都可以通过手机了解家里实时情况。价值:帮助实时监测家里的安全。使用的开源硬件:使用 Arduino 控制小车的运行,使用树莓派控制摄像头拍摄照片并上传。以上这些作品非专业人士也能实现,因为开源硬件降低了人们使用的门槛和项目作品开发的复杂度,在一定程度上突破了专业领域的围墙。人们可以根据自己的意愿设计制作具备一定功能的信息系统,甚至年龄很小的学生,即便不具备非常专业的知识,也可以成为设计者和开发者。基于开源硬件的作品的设计制作,亦可看作是充分利用各种信息技术和其他学科的知识来进行创新的跨学科探究活动。作品三:小车“巡逻兵”活 动1.5 在开源社区中查找
27、一些有创意的项目作品,并在班级内分享。1.6 用文字描述一个创意设想,然后用草图描述其主要功能。另外,请简单列举可能需要哪些材料、技术、知识、工具来实现这个创意设想。9Arduino 的 计 算 速 度 不足以处理照片、视频等信息量大的数据,此外它无法连接 USB 摄像头,因此,制作开源无人机、小车“巡逻兵”时,还需要借助像树莓派这类数据处理能力更强大的开源硬件。小贴士生活中的各种智能设备,如智能灯、智能洗衣机等均内嵌了微控制器,打开配套资源,了解微控制器的广泛应用实例。数字化学习开源硬件项目设计知识链接开源硬件及其发展1.开源硬件开源硬件是可以通过公开渠道获得设计文件的硬件,任何人都可以对已
28、有的设计进行学习、修改、发布、制作和销售。理想情况下,开源硬件使用随处可得的电子元件和材料、标准化制作过程、开放的基础架构、无限制的内容和开源设计工具,以最大化提高他人利用该开源硬件的效率。广义上说,开源硬件不仅限于电子硬件,还涵盖机床、车辆和医疗设备等更大范围的产品类别。从这个意义上说,硬件指的是任何形式的有形产品,可能是机械设备、纺织品,甚至建筑五金。开源硬件使得人们可以自由地分享技术,通过开放交互设计来共享知识和产品化硬件。越大程度地开放硬件的设计,包括设计使用的工具及工艺,就越能帮助尽量多的人使用该硬件,例如制造、改进、销售,越能最大程度地体现该开源硬件的价值。2.开源硬件的发展20
29、世纪 6070 年代,随着大规模集成电路技术的出现,业余无线电获得较大的发展,大批爱好者开始自己设计制作电台,并多以俱乐部或爱好者社区等方式来交流思想、分享知识。开源硬件概念的正式确立源自1997年,一位无线电爱好者发起了“开源硬件认证计划”,其目的是允许硬件制造商自行认证他们的产品为开放的。该计划允许用户为设备更换操作系统,同时确保即使制造商倒闭,仍能有人为设备编写新的软件。这一时期产生了不少开源硬件项目,但由于生产成本过高,又无法通过规模生产来降低成本,因此发展一度深处困境之中,大多数项目在一两年内就逐渐销声匿迹了。进入 21 世纪,互联网的兴起使得硬件设计的分享更加方便,人们可以快速或全
30、球化采购工具和材料,加上开源软件的流行及一些企业利用开源软件取得的巨大商业成功、制造工具的成本逐渐降低等,再一次刺激了开源硬件的发展。这一时期比较著名的项目有Arduino、Beagle Board 等开源硬件开发平台项目,Maker Bot、Egg-Bot 等开源桌面 3D 打印机项目等。特别是 Arduino 等开源硬件开发平台的出现,使得电子爱好者(创客)们拥有了可以通过设计、开发实现创意的简单、便宜的平台工具。开源硬件项目蓬勃发展的同时,开源硬件组织也不断成熟,一些专业协会组织不断出现,如 2012 年成立的开源硬件协会(Open Source Hardware Association
31、,简称 OSHWA)。相关组织与研究者也在着手从事开源硬件规范制定的工作。现今,开源硬件思想已渗透至硬件设计的各个层面,很多开源硬件项目横跨不少行业,其中包括工业机械、农业、环境测绘、太空探索和机器人等,开源硬件作为产业已经走上成熟发展的道路。10第一单元 开源硬件与信息技术创新开源硬件的开放与共享开源硬件重视分享、透明以及工作的传承,开放与共享是其主要特征。人们可以使用和制造其他人的开源硬件,或者在项目中采用其他人的部分甚至全部硬件设计方案。商业化原因造就的技术壁垒使技术变得越来越不透明,硬件的透明性就变得愈发重要,而开源硬件提供了一种物理形式上的信息自由。它意味着源文件可以很容易获得,从而
32、得以复制和发展作品。源文件可能包括原理图、代码和装配指南等。正是因为开源硬件的开放与共享,人们有了更多机会去研究、使用并改进它们以开发更多的项目。利用开源硬件交流平台或社区,可以方便地将自己的反馈、疑惑、想法、改进建议等提交给发明者、有意改进或制造衍生品的其他人,这样可以非常迅速地进行创新。互联网的兴起使得快速采购原型所需的材料和工具、便利迅捷地设计和制造作品成为可能,推动了在线交流中心、在线知识中心的发展。借助互联网,偏远地区的人们也能快速地交流信息,如分发设计文件、实时答疑解惑。随着全球各地越来越多开源设计文件被分享,在开源硬件社区中产生了大量人与人协作和参与硬件研发的机会,这将进一步推动
33、开源硬件的创新和发展。每种开源硬件都会提供硬件规格、编程语言参考指南、软件下载、基础实验案例等信息,帮助使用者配置开发环境和查阅软硬件功能说明。开源硬件社区中一般会有各种与开源硬件相关的讨论主题,如创意作品的来源、控制程序的注意事项等。当前比较热门的主题有机器人(广义的机器人,包括自主控制的车、飞机等)和家庭智能物联等。硬件相关资料的完整程度和用户在社区中的活跃程度,在一定程度上反映了开源硬件的易用性。常见开源硬件的功能常见的开源硬件有 Arduino 和树莓派,它们俗称开发板。开发板大体上由微控制器、供电接口、USB 接口、数字或者模拟引脚等部分组成,它的主要功能是接收、处理、输出信息。其中
34、微控制器(microcontroller)是开发板的核心部分,但其上的引脚较为细小,不易连接外部器件,给使用带来极大的不便,于是人们通过印制电路板将这些引脚拓展出来并加以标注,这也是它们俗称开发板的缘由。图 1-10 和图 1-11 分别展示了 UNO 板和树莓派主要的引脚和接口位置,其中 UNO 板是 Arduino 开发板众多型号中的典型代表。图 1-10 UNO 板图 1-11 树莓派USB 接口数字引脚供电接口微控制器模拟引脚数字引脚微控制器供电接口USB 接口11开源硬件项目设计除了 Arduino、树莓派,常见的开发板还有 micro:bit(图 1-12)、ESP8266(图 1
35、-13)等,它们各有特色,应用领域各不相同(详见配套资源)。微控制器:进行运算并处理信息。供电接口:用于给开发板供电。USB 接口:用于连接计算机等设备。数字引脚或者模拟引脚:用于读取或输出信息。和个人计算机的 CPU 相比,Arduino 和树莓派的微控制器不仅含有计算单元,还集成了很多其他模块,如 A/D 转换器、内存等,因而又被称为芯片上的计算机。如果将开源硬件按信息处理能力的强弱来排列,就会发现,Arduino 代表了适合小数据量、单一任务的硬件,而树莓派代表了适合大数据量、多种任务的硬件。例如,Arduino 程序的每次改动都需要上传到微控制器的内存并重新启动,而树莓派更接近于个人计
36、算机,加载操作系统后可运行多个程序。它们分别采用了不同的技术规格和标准,表 1-1 给出了概要性的比较。图 1-12 micro:bit图 1-13 ESP8266Arduino树莓派本质开源硬件开发板开源硬件开发板操作系统无操作系统一般采用 Linux 作为操作系统开发工具Arduino IDE 开发环境,简化的 C+程序设计语言以 Python 开发为主,兼顾其他 Linux 下的开发环境应用领域一般用于传感器和执行装置的控制一般用于数据量较大的计算表 1-1 Arduino 与树莓派的对比比较维度硬件12第一单元 开源硬件与信息技术创新开源硬件的公开文件开源硬件社区定义了开源硬件,明确硬
37、件产品的哪些部分必须有公开文件,以符合其“开源”性质。设计一款开源硬件产品时,最好使用开源的设计工具和组件,及在本地可以找到的标准材料和标准流程,以最大限度地方便产品的购买、使用者的制造及改进。设计师所共享和记录工作的信息越多,就越有助于提高该产品的开放性,进而增大开源硬件社区采用该产品的可能性。对于一个结合了机械系统、电子元器件、硬件固件,并含有用户界面软件的复杂物理产品而言,该硬件的文件包含多个层次的信息。这种分层的开源原则是要确保开源设计的每一部分都可被复制。表 1-2 介绍的是与开源硬件设备共同发布的信息文件各个层级的相关标准。拓展阅读有的项目可能不会包含上述所有层的信息。设计师还可以
38、选择发布一些额外的设计文件来帮助用户制造、使用或修改硬件设备,这些文件包括手册、照片、图纸、书面说明、使用场景或其他可以帮助用户的解释类文件。摘自开源硬件 DIY创客实践指南表 1-2 开源硬件设备的设计文件开源硬件设计文件包含内容模型/图片类型推荐文件类型机械设计物料装配、所使用的材料、外壳2D/3D 模型.dxf,.dwg,.ai,.pdf,.3dr 等电子原理图和电路图电子线路图标、电路板的物理布局、电子元件列表2D 图片.pdf,.jpg,.gif,.tiff物料清单详细的部件列表、成本、数量、数据一览表电子数据表格.pdf,.xls,.txt,.csv电路的物理布局图表印刷电路板的物
39、理元件布局Gerber 文件Gerber 文件处理器的固件微处理器的固件源代码(C、Linux 等)文本或二进制用户界面的源代码、API 和驱动图形用户界面的源代码、驱动、API,以及软件在计算机上运行的其他必备条件以任何编程语言写的源代码文本或二进制13项目学习目标本项目将尝试使用开源硬件 Arduino 设计制作一个交通信号灯,体验开源硬件项目设计的一般流程,体验利用开源硬件从提出想法到实现作品的完整过程。完成本项目学习,须回答以下问题:1.开源硬件项目设计的一般流程是什么?2.如何利用 Arduino IDE 编写、调试程序并将程序写入开发板?3.如何连接开发板、LED 来搭建一个简单电
40、路?搭建时有哪些注意事项?项目二 设计制作交通信号灯了解开源硬件项目设计的一般流程图 1-14 项目设计的一般流程开源硬件和现代信息技术提供了丰富的资源和快捷的方式,降低了技术门槛和设计开发的复杂度,给予人们设计开发创意作品、将自己的创意变为现实的机会。在开源硬件项目设计活动过程中,人们可以洞察现实的世界,体验创造的乐趣;既是学习者,也是项目的策划者、规划师和工程师。虽然每个基于开源硬件的作品制作都有其独特的过程,但是利用开源硬件进行项目设计的流程一般都要经历提出想法、设计系统解决方案、实现解决方案的完整过程(图 1-14),都要遵循设计、选材、组装、功能开发、测试、迭代优化等一系列步骤。在这
41、一过程中,需要的知识与技能可能涉及科学、技术、数学、工程甚至艺术,它们往往不以系统性的面貌呈现,而是融入项目作品中,这就需要制作者根据项目的需要,自主去检索、学习、研究。项目学习指引1.提出想法交通信号灯(图 1-15,简称交通灯)在生活中具有非常重要的作用,它全天候为出行提供秩序保障。如果由你负责设计与规划某交通灯,该如何实现它的自动控制呢?15当前交通灯正朝着自适应控制方向发展,即基于大数据分析得出的建议,结合路况的实时判断,动态调整灯的亮灭时间,以最大效率利用道路资源。小贴士设置 1 秒时长是为了快速看到实验效果,缩短开发测试时间。小贴士图 1-15 交通灯图 1-16 某交通灯的工作流
42、程绿灯亮 20 秒,熄灭时红灯亮起,持续 20 秒后熄灭,同时绿灯亮起,如此往复。在本项目中,我们将模拟以上交通灯的工作模式,设计制作一个交通灯作品,具体功能设想如下:通电后,红灯亮起,绿灯熄灭;1 秒后,绿灯亮起,红灯熄灭;1 秒后,绿灯熄灭,红灯亮起,如此往复。选择哪种灯来做交通灯合适?灯的亮灭规律是怎么样的?又该如何控制?这是设计和规划交通灯必须要考虑的事情。目前交通灯的控制基本采用的是定时控制,即控制红灯和绿灯的亮灭时间。某路口有 4 组交通灯,每组有红、绿两灯。以一组灯为例,它的工作流程如图 1-16 所示。第一单元 开源硬件与信息技术创新参见 P22 知识链接“开源硬件项目设计的一
43、般流程”开源硬件项目设计活 动2.1 选择家附近或者学校附近的某一个路口,观察并记录该路口交通灯的种类及灯的亮灭情况,包括灯的亮灭时间和先后顺序等。尝试提出含三个灯(红、黄、绿)的交通灯设想。2.设计系统解决方案(1)初步设计根据设想,可以用两个发光器件(能分别发出红色和绿色的光)来模拟红、绿信号灯,在同一时刻呈现不一样的亮灭状态,用于体现交通灯一红一绿交替亮灭的效果。交通灯初步设计图如图 1-17 所示。(2)选择器件 选择开发板如何控制红、绿两灯按照指定的周期亮灭?这需要选择合适的开发板来完成自动控制。树莓派和 Arduino UNO 板可以实现同样的控制效果,但各有特色。树莓派安装了 L
44、inux 操作系统,可运行 Python、C+等高级语言,适合较大量的数据处理,其外接引脚电压为 3.3V。Arduino UNO 板(简称 UNO 板)使用简单,易于操作且价格低廉,引脚电压为 5V 且带电流保护。本项目选用 UNO 板作为作品的开发板,用于处理信息。选择发光器件发光器件有很多,如日光灯、白炽灯、发光二极管(Light Emitting Diode,简称 LED)等。现实生活中,由于交通灯都设在户外,需要承受季节的更替、风雨雷电、频繁的亮灭、气温的剧烈变化等,目前大都使用亮度高、寿命长、稳定性强且不易损坏的 LED。图 1-17 交通灯初步设计图微控制器是开发板处理信息的核心
45、部件。小贴士开发板上布满电路,使用时手不要直接触摸它的中间部位,应用手指拿住它的边缘。小贴士16第一单元 开源硬件与信息技术创新本项目考虑的是模拟交通灯亮灭效果,不需要高亮度和大电流的器件,故选用 LED 即可。选择其他辅助器件根据电路搭建的需要,还必须选择一些常用的电子零件、工具和导线,如色环电阻、面包板、跳线等。(3)可行性验证实验根据设计方案,需要进行可行性验证实验:用开发板自动控制一个 LED 的亮灭。用开发板自动控制一个 LED 的亮灭LED 的亮灭是由其两端的电压差决定的。用开发板来控制 LED 的亮灭,就是通过开发板控制 LED 两端电平的高低状态,使之每隔 1 秒亮灭一次。实验
46、步骤:如 果 是 首 次 在 计 算 机 上 使 用 Arduino,那 么 要 先安 装 Arduino 的 集 成 开 发 环 境(Integrated Development Environment,简称 IDE)。使用 USB 线连接计算机和 UNO 板,并在 IDE 里设置COM 端口。根 据 图1-19 连接器件。先将 LED 引脚串联分压电阻,然后 正 极 插 到 8 号引脚,负极插到GND 引脚。在 Arduino IDE中编写程序,控制 LED 的亮灭。Arduino 程 序框架分为两个部图 1-18 LED 实物图当给 LED 加上一定的电压时,它会发光。LED 有两个引脚
47、,接入电路时,通常长引脚与电源的正极相连,短引脚与电源的负极相连,中间加限流电阻,防止LED 过流烧坏。LED 实物如图 1-18 所示。小贴士可行性验证实验是为了了解所选器件的使用方法及预想的实验结果能否实现。小贴士计算机与 Arduino 开发板通过COM端口进行通信,首次使用,需要手动配置。GND 是 Ground 的简称,表示接地端或负极。小贴士图 1-19 一个 LED 的控制电路图选择器件时一般需要考虑哪些方面?有哪些注意事项??思考与讨论?参见 P23 知识链接“开源硬件的集成开发环境”参见 P25 知识链接“面包板的使用”17开源硬件项目设计分,setup()用于初始化工作,l
48、oop()是程序的主体部分。将 8号引脚的电平设为高(5V),灯点亮,保持 1 秒后再设为低(0V),灯熄灭,也保持 1 秒。程序循环执行 loop(),就出现 LED 交替亮灭的效果。程序示意图如图 1-20 所示。Arduino 程序采用的编程语言是简化的 C+。小贴士图 1-20 控制一个 LED 亮灭的程序示意图参 见 P24 知 识 链 接“Arduino 程序的基本结构”/通电后 setup()执行一次,然后反复执行 loop()void setup()pinMode(8,OUTPUT);/将 8 号引脚设为输出/loop()中的代码会循环执行,直到断电void loop()dig
49、italWrite(8,HIGH);/将 8 号引脚电平设置为高,灯亮起delay(1000);/等待 1000 毫秒(1 秒),灯持续亮 1 秒digitalWrite(8,LOW);/将 8 号引脚电平设置为低,灯熄灭delay(1000);/等待 1000 毫秒(1 秒),灯熄灭持续 1 秒在 Arduino 的配套软件平台中,有一些系统默认的常量。常见的如表 1-3 所示。表 1-3 常见的常量常量名称说明INPUT代表输入OUTPUT代表输出HIGH代表高电平,相当于 5VLOW代表低电平,相当于 0VTrue代表真或 1False代表假或 0小贴士 点击工具栏的“上传”按钮,IDE
50、 先对编写的程序进行编译验证,验证语法无误后,将程序上传至 UNO 板。Arduino 参考程序:在 Arduino 编 程 中,只需要编写 setup()和 loop()两个函数,这两个函数均无返回值,分别用于 Arduino 程序的初始化部分和执行部分。setup()函数一般放在程序开头,用于设置一些引脚的输入/输出模式、初始化串口等,它只在通电或重启时执行一次;loop()函数用于执行程序,是一个永久循环,其中的代码将被循环执行来完成程序的功能,如读入引脚状态、设置引脚状态等。小贴士18第一单元 开源硬件与信息技术创新确保开发板处于正常工作状态的测试方法:打开 IDE 提 供 的 范 例
51、 程 序,将“Blink an LED”程 序 上传至 UNO 板,观察板上的LED 是否有规律地闪烁。小贴士活 动2.2 根据给出的实验步骤,完成 LED 的可行性验证实验。小组交流各自实验中遇到的问题及解决办法,并说说可行性验证实验的作用和意义。图 1-22 交通灯电路连接图本案例使用的是 7、8号引脚,其他数字引脚也可以完成同样的功能。小贴士图 1-21 LED 亮灭的实验结果详细设计是对初步设计的进一步具体化,主要从硬件层面确定整个作品系统的具体实现细节,包括器件使用的引脚和连线方式。核心概念(4)详细设计经过可行性验证实验,了解了如何通过引脚输出高、低电平控制 LED 的亮灭。接着需
52、要考虑如何将整个信息系统用到的器件全部连接起来,构成一个完整的系统,进一步完善交通灯的设计方案。设计交通灯的详细方案,需要明确各器件各个引脚的连线。本项目的详细设计 方 案 如 图 1-22 所示,两只 LED(红和绿)分别串联电阻后,红灯正极连到 8 号引脚,负 极 连 到 GND 引脚;绿灯正极连到7 号引脚,负极连到 GND 引脚。GNDGND87 查看实验结果,如图1-21 所示,LED 每隔 1秒闪烁一次。19开源硬件项目设计3.利用开源硬件实现解决方案(1)制作原型利用选择的器件,连接电路,搭建交通灯的原型。原型搭建完成后(图 1-23),应反复确认各器件正负极是否连接正确,只有确
53、认无误后,才能接通电源编写程序。图 1-23 制作完成的交通灯原型原 型(prototype)是 在新产品开发阶段所制作的模型或实验电路,用来试验新产品的功能、造型和材料。核心概念图 1-24 交通灯程序示意图(2)编写程序根据交通灯的功能,先绘制程序示意图,然后编写程序。本作品是通过改变引脚的电平状态来控制与其相连的 LED亮灭的,程序示意图如图 1-24 所示。搭建原型的过程中,所有器件必须断开电源,以免烧坏器件。小贴士编写程序时若遇到困难,可打开配套资源,查看并阅读参考程序。数字化学习20第一单元 开源硬件与信息技术创新(3)测试及优化作品将编写完成的程序上传至开发板,然后测试原型能否呈
54、现预设的效果,即红、绿两个 LED 每隔 1 秒闪烁一次,且两灯交替闪烁。测试效果如图 1-25 所示。在班级里评价、交流各自的作品,关注新的设想和建议,并据此优化作品。例如,生活中有些交通灯在绿灯变红灯之前,绿灯会快速地闪烁几下,尝试通过改进程序,让作品更加真实。又如,可以对作品进行造型设计,使之更美观、实用。如图 1-26 是某同学用瓦楞纸制作立杆来架设的交通灯。图 1-25 交通灯测试效果图 1-26 造型设计后的作品图项目作品的评价可以从创新性、实用性和解决问题等不同角度做出判断。小贴士在信息系统的开发过程中,各个阶段都要设置测试环节。测试的主要目的是检测数据处理的正确性、系统功能的完
55、整性等系统性能。小贴士21如何改变两灯亮灭的时间间隔??思考与讨论?开源硬件项目设计活 动2.3 完成交通灯的制作并进行优化。(1)根据给出的器件连接电路图搭建交通灯的原型。再参考给出的程序示意图,编写交通灯的控制程序,并进行测试。(2)尝试对作品进行优化,将改进后的作品在班级内交流展示与评价,并将最终完成的作品连同设计文件等分享到校园开源社区。2.4 本项目设计制作的交通灯只有红、绿两盏灯,现实的交通灯一般是有红、绿、黄三盏灯交替闪烁,能否在已完成的作品基础上加以改进,实现红、黄、绿三盏灯交替闪烁的效果?(提示:只需要再使用 UNO 板的另一个数字引脚,连入一盏黄色的 LED,然后调整相应的
56、控制程序即可。)开源硬件项目设计的一般流程开源硬件项目作品由电子硬件(开源)、控制程序和承载平台组成,如图 1-27 所示。知识链接当有了一个有趣的想法,如何利用开源硬件将它变为实际的作品或装置?一般需要先做一个初步的设计,把系统划分为若干个功能模块,然后选择适宜的器件动手实验去验证每个模块的可行性,使设想逐渐变为可行的方案。根据初步设计及可行性验证实验的结果设计系统方案(详细设计方案),最后制作原型或产品。作品制作完成后,在测试或展示分享的过程中也许会产生新的想法或改进的方向,可以进一步尝试优化改进。本项目就是照这样的流程完成了交通灯的设计与制作,如图 1-28 所示。虽然每个基于开源硬件的
57、作品设计制作都有其独特的过程,但一般来说,都需要经历提出想法、设计系统解决方案和实现解决方案这一流程。开源硬件项目作品电子硬件(开源)控制程序承载平台=+图 1-27 开源硬件的项目作品的组成22第一单元 开源硬件与信息技术创新除了流程总体上的循环迭代,其实设计制作过程中每前进一步,都需要回顾之前的步骤,思考有哪些方面存在不足或可及时改进的地方。例如,完成可行性验证实验之后,应反思初步设计是否合理,是否有更简单、可靠的器件等。这样不断往复迭代的设计,能够较及时地发现错误并做出修正,从而提升开发效率和作品质量。开源硬件的集成开发环境1.Arduino IDE本项目中使用的 Arduino IDE
58、 是专门针对 Arduino 开发的编程环境。它是一种集成开发环境(IDE),将程序编辑、校验与编译、上传写入(将程序写入 Arduino 开发板)等功能集成在一起,极大地提高了开发效率。Arduino 开发板需要借助计算机来完成程序的编写和上传,因此要先连接开发板与计算机,确保计算机与开发板正确匹配。如图 1-29 所示,程序编写的整个过程大体分为三步:编写程序;验证与编译;将程序上传至开发板。图 1-28 开源硬件项目设计开发的一般流程图 1-29 程序的编写过程23开源硬件项目设计 编写程序:使用 Arduino 程序开发工具编写程序的源代码。校验和编译:检查程序内容是否有错误(如拼写错
59、误),并且把程序源代码翻译成微控制器能够理解的形式(机器码),此翻译过程称为编译。上传:也称烧写,把编译完成的机器码程序写入微处理器的内存。程序上传完成后,Arduino 开发板将自动开始执行程序。安装和设置 Arduino IDE 的方法如下:(1)下载并安装 IDE。下载 Arduino 的 Windows 安装包,然后根据提示安装。IDE 安装过程中会提示要安装驱动,确认安装即可。(2)用 USB 线将 Arduino 开发板和计算机相连,观察屏幕右下角是否提示驱动安装成功。(3)双击图标启动 IDE,并在“工具”菜单中设置开发板的类型和端口号,见图 1-30。要注意的是,Arduino
60、 开发板与不同计算机相连时,出现的端口号可能不同,故设置时要选择菜单项中的对应端口,如 UNO 板应选“Ardunio/Genuino UNO”。2.树莓派程序开发树莓派本质上是一台简化了的微型计算机,一般都安装了 Linux 操作系统。这个操作系统自带标准的 Python 语言开发环境,理论上可以将它用作 PC 机(personal computer 的简称)来编写并运行 Python程序,但是实际上直接在树莓派上开发程序的效率远不及常规 PC 机。因此,开发树莓派程序时,通常先在 PC 机上用类似Pycharm 的集成开发环境开发程序,然后再将编写完成的程序上传到树莓派上运行。在这个过程中
61、可能会遇到第三方库在树莓派上不可用的问题,这是因为有些开源库只能在 PC 机上安装。树莓派还有另外一种开发程序的方法,就是在树莓派上安装 Windows 的 IoT 版本操作系统,然后用微软的 Visual Studio 和 C#编写并调试程序,最后通过网络将编写完成的程序自动上传到树莓派上运行。这种方法的优点是能在标准 PC 机上编写程序,提升了程序开发的效率,还支持断点、单步等调试功能。Arduino 程序的基本结构Arduino 开发板的程序遵循统一的结构和运行规则,这给编写程序提供了框架,降低了难度。当新建一个 Arduino IDE 程序文件时,会自动生成一些程序代码,中间有两个模块
62、分别是 void setup()和 void loop(),它们将程序分成两个功能区,不同的功能区完成不同的控制任务。下面以本项目的可行性验证实验控制一个 LED 的亮灭为例来说明程序的结构。图 1-30 设置 Arduino 开发板的类型和端口号24第一单元 开源硬件与信息技术创新图 1-31 程序与程序示意图的对应关系如图 1-31 所示,在 setup()函数中将连接 LED 的 8 号引脚设置为输出,以控制 LED的亮灭,这个操作只在通电或重启时执行一次,之后不再执行。在 loop()函数中,有 4 条语句,分别执行的操作是:将 8 号引脚电平设置为高,灯亮起。等待 1 秒,灯持续亮
63、1 秒。将 8 号引脚电平设置为低,灯熄灭。等待 1 秒,灯持续熄灭 1 秒。由于 loop()函数中的代码会被循环执行,所以在第步执行完成后,将回到第步继续执行,程序不断循环,LED 呈现闪烁的效果。程序设计时,永久循环一般是要避免出现的,但在单片机或嵌入式系统中,这种永久循环的程序结构十分常见。以家用燃气泄漏报警器系统为例,当电源打开之后,检测系统中的程序不停地重复执行:探测有无可燃气体泄漏,发现异常则发出报警声直到关机。面包板的使用面包板用于连接各种器件,其优势在于避免焊接且易于改变器件的连线。由于板子上面有很多小插孔,像极了面包,因此得名。如图 1-32 所示,面包板的结构分为上、中、
64、下三部分。上、下两部分是由两行插孔构成的窄条,中间部分由一条隔离凹槽和上下各 5 行的隔离插孔构成。void setup()pinMode(8,OUTPUT);void loop()digitalWrite(8,HIGH);delay(1000);digitalWrite(8,LOW);delay(1000);25开源硬件项目设计开发板使用安全注意事项开发板易受静电影响。出厂时,厂商通常会用防静电袋(外观呈褐色的半透明塑料袋)来包装。使用开发板时,注意尽量不触碰开发板的引脚和焊接点,可捏开发板的侧面,如图 1-33 所示的姿势。在气候比较干燥的时节,手接触开发板前可先触摸一下金属物体,放掉身体
65、上的静电。开发板还容易因短路而损坏。使用时,桌上不宜有水、饮料等液体;开发板下方也不要放置金属导线,最好垫一张白纸或塑料垫,以避免短路。拓展阅读图 1-33 拿取开发板的正确姿势捏住开发板的两侧这样结构的面包板,中间部分的每列都相通,不同列不连通;隔离凹槽划分形成的上下两部分不连通,器件与跳线不能跨过隔离凹槽进行串联。图 1-32 面包板上窄条下窄条隔离凹槽中间部分26第一单元 开源硬件与信息技术创新一、项目任务小夜灯在生活中十分常见,智能小夜灯(图 1-34)更是为生活提供了极大的便利。用开源硬件制作一个光线柔和的小夜灯,夜幕降临时自动点亮,太阳升起或光线足够强时自动熄灭,节能又便利。完成小
66、夜灯设计制作,并在班级内分享自己的作品和心得体会。二、项目指引1.以小组为单位,开展数字化学习,了解让灯随着外部光线的强弱变化而自动亮灭的控制方法。2.每个小组根据收集到的资料,大胆提出设想,明确小夜灯的具体控制方法,完成小夜灯的初步设计。3.依据初步设计,选择合适的开发板和其他器件,然后进行可行性验证实验并完成小夜灯的详细设计方案。4.按照详细设计方案搭建原型,编写控制程序并测试小夜灯的预设功能能否实现。测试时,可人为模拟白天、黑夜的环境。5.若经过测试,小夜灯功能能够实现,还可以对小夜灯进行造型设计,使之更加美观和方便使用。三、交流评价与反思每个小组在班级内交流展示自己的作品,并分享设计过
67、程中遇到的问题及解决的办法。每个小组可根据他人的评价等优化作品,并拍摄最终作品的图片或视频,将其与小夜灯的控制程序等文件一起分享到校园开源社区。单元挑战 设计制作小夜灯图 1-34 自动感应的小夜灯详细设计方案如下:27开源硬件项目设计一、主要内容梳理二、单元评价单元小结评价内容是否达成了解开源硬件的特征与发展(A、T、I、R)能够认识常见的开源硬件并了解它们的功能(A、T、I)知道利用开源硬件进行信息技术创新的意义(A、T、R)能够认识开源特征并理解保护知识产权的意义(R)能在开源社区或网页上查找开源案例及其相关信息,开展数字化学习(A、I)知道基于开源硬件完成项目设计制作的基本流程(T)了
68、解项目设计制作过程中相关设备与器件的安全使用规则和方法(A、I)了解利用设计工具或编程语言编写、调试程序并将程序写入开发板的方法(T、I、R)建立校园开源社区,践行开源与知识分享的精神(A、R)说明:A信息意识,T计算思维,I数字化学习与创新,R信息社会责任一、主要内容梳理二、单元评价单元小结评价内容达成情况了解开源硬件的特征与发展(A、T、I、R)能够认识常见的开源硬件并了解它们的功能(A、T、I)知道利用开源硬件进行信息技术创新的意义(A、T、R)能够认识开源硬件的特征并理解保护知识产权的意义(R)能在开源社区或网络上查找开源案例及其相关信息,开展数字化学习(A、I)知道基于开源硬件完成项
69、目设计的基本流程(T)了解项目设计过程中相关设备与器件的安全使用规则和方法(A、I)了解利用设计工具或编程语言编写、调试程序并将程序上传至开发板的方法(T、I、R)建立校园开源社区,践行开源与知识分享的精神(A、R)说明:A信息意识,T计算思维,I数字化学习与创新,R信息社会责任28随着创新文化的发展,人们越来越感受到自制或改造电子产品给生活带来的便利。例如,利用开源硬件读取气象网站发布的天气数据,并显示在镜面上,这样早晨起床洗漱时,就能了解当天室外气温、降水概率等信息;利用开源硬件设计制作一个宠物自动喂食器,主人外出时,就不用担心家里的宠物无人喂食了;利用开源硬件和摄像头设计制作一个报警器,
70、当独居老人跌倒时,它便会报警提示家人或社区中心。以上这些基于开源硬件的作品,本身都是一个小型的信息系统,它们用传感器等输入器件完成信息的采集输入,由微控制器完成信息的运算处理,最后将信息输出或用于驱动执行装置工作。本单元将带领大家从信息系统的角度来了解开源硬件是如何实现数据输入、处理和输出的,并理解系统中信息之间的调用关系;通过自行车里程仪的设计与制作,了解开源硬件项目作品的优化方法。第二单元 基于开源硬件的信息系统 认识基于开源硬件的信息系统的基本结构,明确各组成部分及其功能作用。理解信息系统中信息输入、处理与输出三者之间的调用关系。通过设计制作自行车里程仪作品,了解开源硬件项目的迭代优化方
71、法。学习目标设计制作创意风扇单元挑战项目学习目标在本项目中,我们将尝试利用开源硬件 Arduino 设计制作一个低头报警器,了解开源硬件如何实现数据的输入、处理与输出。完成本项目学习,须回答以下问题:1.传感器在基于开源硬件的信息系统中的作用是什么?2.传感器读取的数据有什么特点?3.如何用开发板的输入引脚从传感器读取数据?4.开发板引脚输出数据有哪些方式?如何选用输出引脚?项目三设计制作低头报警器实现数据的输入、处理与输出图 2-1 基于开源硬件的信息系统基于开源硬件的信息系统(图 2-1)能够借助传感器获取外界环境的数据,经过一定处理后再输出到执行装置。这种从物理环境读入数据,再以物理方式
72、反作用于物理环境的特点,使得基于开源硬件的信息系统能实现很多有趣的应用。近年来的相关医学调查显示,青少年近视在一定程度上是由于坐姿不端正引起的。但在学习过程中,青少年无法获取头部距离桌面的高度数据,难以察觉自己的坐姿是否端正。能否利用开源硬件设计制作一个低头报警器,帮助他们及时发现自己坐姿端正与否?项目学习指引1.提出想法低头报警器的主要功能是当人们低头看书学习时,若头部离书本过近,便发出报警信息,提醒人们及时纠正坐姿。报警器如何测量头部与书本的距离?它可以用何种方式来报警?发出声音、闪烁灯光、发送报警文字到智能手机或计算机上本项目尝试设计制作的低头报警器一旦察觉人们坐姿不端正,头部(指眼睛,
73、下同)距离桌面太近时(小于 35cm)(图2-2),会发出“嘀嘀”的报警声,直到距离大于 35cm,才停止报警。31图 2-2 测距示意图活 动3.1 上网查找资料,了解目前常见报警装置的应用情境及其检测数据,并完成表 2-1 的填写。2.设计基于开源硬件的信息系统(1)初步设计低头报警器应该具备哪些组成模块才能实现低头报警的功能呢?从信息系统的基本组成来看,作品分为三大组成模块,每个模块有各自要实现的功能(图 2-3)。在信息输入模块中,需要获得当前头部与桌面之间的距离信息,然后将距离信息传输到微控制器进行计算处理,如果发现距离太近,则让发声器件发出“嘀嘀”的报警声。图 2-3 低头报警器初
74、步设计图头部与桌面的距离低头报警器的基本功能需求确定后,接下来的核心问题是如何让测得的数据经过处理后去驱动执行装置作出相应的动作。小贴士第二单元 基于开源硬件的信息系统参见 P40 知识链接“基于开源硬件的信息系统基本结构”报警装置应用情境检测数据表 2-1 常见报警装置的应用情境及检测数据开源硬件项目设计(2)选择器件 选择测距器件本项目需要使用器件来检测头部与桌面的距离,完成信息采集(即测距)的工作。从初步设计来看,测距工作需要实时进行并能够自动完成。自动测距的办法有很多种,常见的有超声波、激光、红外线等。其中激光太亮,容易刺激眼睛;红外线易受到环境光线的干扰,影响测量精度;超声波测距简单
75、、安全,应用便捷。因此,本项目选择超声波传感器(图 2-4)来测量距离。选择发声器件发声装置有很多种,其中扬声器、蜂鸣器比较常见且容易获得,它们都有众多的种类和型号,能够与多种微控制器适配。对本项目而言,扬声器和蜂鸣器都是不错的选择。鉴于蜂鸣器小巧、耗电量小、价格便宜、不易损坏且易于用微控制器控制,所以本项目选用它作为发声器件。蜂鸣器是一种简易的发声器件,接通电源,其内部的小铁片在电磁感应作用下来回振荡发出声音,在家用电器、电子玩具、游戏机中均有广泛的应用。蜂鸣器分为有源和无源两种,如图 2-5 和 2-6 所示。本项目选用更易控制的有源蜂鸣器。参见 P40 知识链接“传感器”图 2-4 超声
76、波传感器图 2-5 有源蜂鸣器 图 2-6 无源蜂鸣器超 声 波 传 感 器 有 两 只“眼睛”,一只发射超声波,另一只接收反射回来的超声波,根据收发的时间间隔来计算物体之间的距离。小贴士蜂鸣器根据其内部有无振荡源,可分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器接上额定电源(新的蜂鸣器在标签上都有注明)可连续发声;无源蜂鸣器则和电磁扬声器一样,须要接在音频输出电路中才能发声。小贴士完成本项目制作所需器件如表 2-2 所示。器件名称作用UNO 板处理信息超声波传感器测量头部与桌面的距离有源蜂鸣器发出报警信息面包板、杜邦线搭建电路USB 线连接微控制器与计算机表 2-2 项目所需器件32第二单元 基于开
77、源硬件的信息系统(3)可行性验证实验根据初步设计方案和选择的器件,需要验证用 UNO 板控制有源蜂鸣器发声和控制超声波传感器测距的可行性,然后才能进一步搭建低头报警器原型。蜂鸣器发声实验实验步骤:根据图 2-7,将有源蜂鸣器的正极(长引脚)与 UNO板的 2 号引脚相连,负极(短引脚)与 UNO 板的 GND 引脚相连。图 2-7 有源蜂鸣器电路连接图void setup()pinMode(2,OUTPUT);/将 2 号引脚设置为输出模式digitalWrite(2,HIGH);/将 2 号引脚设置为高电平,有源蜂鸣器发出声音void loop()测试。将程序输入 Arduino IDE 中
78、,编译成功后上传至 UNO 板。观察有源蜂鸣器的发声情况(图 2-8)。编写程序。蜂鸣器作为输出响应器件,获得 UNO 板发出的指令,即可发出鸣叫声。对于有源蜂鸣器,只要其控制引脚为高电平,即可发出声音。因此程序的目的是控制 2 号引脚电平的高低。示例程序如下:+-GND233开源硬件项目设计1.可否使用 UNO 板的其他引脚来驱动有源蜂鸣器?应如何修改现有程序?2.怎样控制有源蜂鸣器,使其每隔 1 秒发声??思考与讨论?超声波传感器测距实验实验步骤:连接器件。超声波传感器的 VCC、GND 引脚分别与UNO 板的 5V 引脚和 GND 引脚相连,即 UNO 板给超声波传感器供电。Trig、E
79、cho 引脚分别与 UNO 板的 2 号和 3 号引脚相连。电路连接如图 2-9 所示。图 2-9 超声波传感器电路连接图超声波传感器有 4 个引脚,VCC 和 GND 分别连接电源的正、负极,Trig 引脚用来触发超声波信号,Echo 引脚负责输出回波时间信号。小贴士图 2-8 有源蜂鸣器实验效果图超声波传感器34第二单元 基于开源硬件的信息系统 编写程序。超声波测距示意图(局部)如图 2-10 所示,由于 UNO板上的 2 号和 3 号引脚分别连着超声波传感器的 Trig、Echo引脚,通过控制 UNO 板的 2 号、3 号引脚的电平状态即可实现超声波测距。波特率决定串口通信两端数据传输的
80、速度。波特率越高,传输速度越快。波特率通常可设置为 9600,两端设备必须使用相同的波特率。程 序 中 可 以 用 脉 冲 宽度时长记录函数 pulseIn(pin,value)来读取回波的时间。其中 pin 为开发板的数字引脚 号,value 为 引 脚 电 平 值(HIGH 或 LOW)。若 value为 HIGH,那 么 当 pin 对 应的引脚为高电平时,开始计时,引脚变为低电平则停止计时。该函数记录并返回的时间单位为微秒。float()将数据类型强制转换为浮点型。小贴士图 2-10 超声波测距示意图(局部)float Value_cm;/定义浮点变量用于存储计算的距离值void se
81、tup()Serial.begin(9600);/设定串口监视器的波特率为 9600pinMode(2,OUTPUT);pinMode(3,INPUT);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
82、)/1000;/根据 3 号引脚读取的回波时间计算距离,并换算为厘米Serial.print(Value_cm);/在串口监视器中输出测得距离值Serial.println(cm);/在距离值后加上单位“cm”并换行delay(1000);参见 P42 知识链接“超声波测距原理”35开源硬件项目设计 测试。将程序输入 Arduino IDE,编译成功后上传至UNO 板。打开串口监视器,将手放在超声波传感器的正上方,不断改变手与超声波传感器之间的距离,观察串口监视器中数值的变化。测试效果如图 2-11 和图 2-12 所示。1.可行性验证实验中将超声波传感器测得的数据转换成距离值,经历了哪些过程
83、?2.超声波传感器测得的距离与真实距离略有偏差,这是为什么??思考与讨论?活 动3.2 根据给出的实验步骤,完成以上两个可行性验证实验。小组交流各自实验中遇到的问题及采取的解决办法。(4)详细设计经过可行性验证实验,明确所选器件能够支持初步设计方案,接下来需要设计低头报警器的详细方案,绘制电路连接图。如图 2-13 所示,将蜂鸣器、UNO 板、超声波传感器连接在一起,构成一个完整的系统。有源蜂鸣器正极连UNO板的5号引脚,负极连GND引脚。超声波模块的 VCC、Trig、Echo 和 GND 引脚分别接在 UNO 板的 5V、2 号、3 号和 GND 引脚。上网查找资料,学习超声波传感器测距误
84、差的相关内容,了解如何降低测距误差。数字化学习图 2-11 超声波传感器测距实验效果图图 2-12 串口监视器输出的距离值参见 P43 知识链接“串口监视器的应用”有 源 蜂 鸣 器 可 与 UNO板上的其他数字引脚相连,只要不与超声波传感器所用引脚冲突即可。小贴士36第二单元 基于开源硬件的信息系统3.实现数据的采集、运算处理和输出(1)制作原型根据详细设计方案,利用选择的器件,搭建低头报警器的原型。搭建完成的低头报警器原型如图 2-14 所示。图 2-13 低头报警器电路连接图图 2-14 低头报警器原型(2)编写程序作品功能的实现需要程序来控制。本作品的程序首先要控制超声波传感器发出超声
85、波并接收回波,获得收发的时间差,进而计算出与障碍物之间的距离,接着判断这一距离与设定阈值的关系,当距离小于设定阈值,UNO 板发送指令,给予有源蜂鸣器引脚高电平,让其发出报警声(图 2-15)。-+5 32GND5VGND从左端向右依次为VCC、Trig、Echo、GND37开源硬件项目设计(3)测试与优化作品将程序输入 Arduino IDE,编译成功后上传至 UNO 板。打开串口监视器,将原型放置在书桌边缘,不断改变坐姿,观察串口监视器中输出的距离数值的变化以及蜂鸣器的发声情况,如图 2-16 所示。图 2-16 串口监视器输出的距离数值图 2-15 低头报警器程序示意图经测试,作品基本实
展开阅读全文
课堂库(九科星学科网)所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。


2019届人教A版数学必修二同步课后篇巩固探究:2-1-1 平面 WORD版含解析.docx
