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 低头报警器程序示意图经测试,作品基本实
86、现预设功能后,可进一步对其进行造型设计。造型设计的原则是在具有实用性的同时,还应具有观赏性。小贴士38第二单元 基于开源硬件的信息系统测试时,串口监视器显示的有些数字特别大,明显大于实际距离,这是为什么??思考与讨论?测试无误后,可以对作品进行优化。如有源蜂鸣器发出的声音单一、刺耳,能否改进设计,使其发出优美的声音?解决思路:更换发声器件,如用 MP3 模块播放预先录制的提示语音或音乐。图 2-17 是某同学改进的低头报警器。活 动3.3 完成低头报警器的制作并进行优化。(1)根据详细设计方案搭建低头报警器原型。再参考给出的程序示意图,编写低头报警器的程序,并进行测试。(2)尝试对作品进行优化
87、,如可以从造型、供电等方面来考虑。将优化后的作品在班级内交流展示,并对其他组的作品进行评价。3.4 除了头部与书桌的距离过近会影响视力,光线不足也会对视力造成不良影响。能否在现有装置的基础上增加光线太暗的报警?(提示:光敏电阻可用来采集光线的强弱信息,光线信息可类同于本项目中的距离值,用程序判断其是否超出预设范围,从而决定蜂鸣器是否发出报警声。)图 2-17 某同学改进后的低头报警器MP3 模块扬声器39开源硬件项目设计知识链接基于开源硬件的信息系统基本结构一般而言,信息系统的基本功能是进行信息处理,具体包括信息输入、存储、处理、输出及控制等。基于开源硬件的信息系统可以简化为三个部分,即信息输
88、入、信息处理和信息输出,如图 2-18 所示。信息输入:完成信息的获取,一般由各种传感器来采集并传递给信息处理模块,例如,温度传感器能够获取当前环境的温度,光敏传感器能够获取光线的强度信息等。信息处理:一般由各种型号或性能的开源硬件来完成,它们能根据系统的功能需求,对输入的信息进行加工处理。本教材中主要用到的是 Arduino 开发板和树莓派开发板。信息输出:将处理完成的信息传递给系统的执行装置,实现信息的定向传递。以开源硬件 Arduino UNO 板为例,开发板可通过引脚实现信息的输入与输出。如图 2-19所示,开发板上标记 213 的为数字引脚,这些引脚既可用来输入信息,也可用来输出信息
89、。例如,程序“pinMode(2,OUTPUT);”是指将 2 号引脚设置成输出模式,此时它只能用于输出信息;“pinMode(2,INPUT);”是指将 2 号引脚设置成输入模式,此时它只能用于接收信息。标记为 A0A5 的为模拟引脚,这些引脚只能用于输入模拟信号,如温度值等。图 2-18 基于开源硬件的信息系统的组成图 2-19 UNO 板数字引脚和模拟引脚示意图传感器传感器是一种检测装置,能感知到被测量的信息,并能将之按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。数字引脚模拟引脚40第二单元 基于开源硬件的信息系统根据传感器的基本
90、感知功能,可将其分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、压敏元件、声敏元件、放射线敏感元件、流体元件和味敏元件等几大类。人们常将传感器的功能与人类五大感觉器官相比拟:压敏/热敏/流体传感器触觉气敏传感器嗅觉光敏传感器视觉声敏传感器听觉味敏传感器味觉利用开源硬件进行项目设计时,需要根据被测量对象的特点选择不同的传感器。常用的传感器有光敏传感器、温度传感器、霍尔传感器、土壤湿度传感器、震动传感器、气体传感器、红外传感器、加速度传感器等。光敏传感器实物如图 2-20 所示,能感受到周围光线的变化,可用于楼道灯或者路灯的自动控制。图 2-20 光敏传感器依据温度的测量范围有各种不同的温度
91、传感器。LM35 是常用的温度传感器,如图 2-21所示的 LM35DZ,其测量范围是 0 100;图 2-22 是 pt100 温度传感器,其测量范围是-50 300。霍尔传感器可以检测周围磁场的变化,广泛应用于电机测速、位置检测等场合,如图2-23 所示。图 2-24 所示的是土壤湿度传感器,可用于检测土壤中水分的含量,多应用于自动浇水系统、花盆土壤湿度检测装置中。图 2-21 LM35DZ 温度传感器图 2-22 pt100 温度传感器41开源硬件项目设计本项目使用的超声波传感器是利用超声波能在气体、液体和固体等介质中传播,通过计算收发超声波时间差来测量距离。超声波测距原理超声波测距原理
92、如图 2-27 所示,超声波发射器向某一方向发射超声波,并开始计时,超声波在空气中传播,途中碰到障碍物会反射回来,超声波接收器接收到反射回来的超声波就立即停止计时。超声波在空气中的传播速度为 340m/s,根据计时器记录的时间t,可以计算出发射点距障碍物的距离s,即:s=340t/2。本项目中计算障碍物与超声波传感器的距离公式:距离=高电平持续的时间(s)340m/s(声速)/2 将上式中的距离单位统一换算成 cm,时间单位换算成 s,可以得到下式:距离(cm)=高电平持续的时间(s)17000 cm/1000000 s=高电平持续的时间 17/1000图 2-25 震动传感器 图 2-26
93、甲烷传感器图 2-23 霍尔传感器图 2-24 土壤湿度传感器 震动传感器(图 2-25)可以感受周边环境的震动,生活中电动自行车便应用了该传感器,使得电动车在未解锁的状态下被碰触会发出警报声。甲烷传感器(图 2-26)是将空气中的甲烷浓度变量转换成有一定对应关系的输出信号的装置,常用于煤气泄漏报警装置中。42第二单元 基于开源硬件的信息系统图 2-27 超声波测距原理串口监视器的应用串口监视器是 Arduino IDE 中嵌入的程序调试工具,可用于输入与输出(打印)信息。在编写程序的过程中可用于程序的交互与错误的排查。在本项目中,主要用来输出超声波传感器的距离值。其应用如下:(1)使用“Se
94、rial.begin(9600);”来初始化并设定串口监视器的波特率(数据通信的速度)。(2)使用“Serial.print();”(输出数据不换行)或“Serial.println();”(输出数据换行)来输出数据。(3)在 Arduino IDE 中点击“工具”“串口监视器”即可打开串口监视器。(4)编译并上传程序到 UNO 板,在串口监视器的右下角选择 9600 波特率后,即可看到对应数据。在本项目中看到的是头部与超声波传感器之间的距离。43项目学习目标本项目中,我们将设计制作一个自行车里程仪,并对其进行测试优化,体验作品的迭代优化过程。完成本项目学习,须回答以下问题:1.基于对里程仪及
95、自行车的分析,如何设计基于开源硬件的自行车里程仪方案?2.根据设计方案,如何利用开源硬件的设计工具或编程语言,实现自行车里程仪的功能?3.完成自行车里程仪原型制作后,可从哪些方面进行优化?项目四设计制作自行车里程仪体验作品的迭代优化图 2-28 作品的优化将创意或想法变为作品的过程,一般都要经历提出设想、设计系统解决方案、实现解决方案等环节,但这个过程并不一定都是完全按照环节的顺序线性开展的。因为在这个过程中,可能会遇到各种未曾预料到的问题,例如,预想的功能没有实现,产生一些新的想法或者测试发现一些不尽如人意的地方,这就迫使我们重新思考设计制作的每个环节,并作出相应的修改与调整。这种不断反思、
96、修正的方法,被称为迭代优化,它贯穿作品的整个设计制作过程,帮助我们更好地实现设计初衷(图 2-28)。项目学习指引1.提出想法自行车里程仪的主要功能是测量并显示自行车行驶的速度和里程,帮助骑行者了解骑行状态。汽车里程仪的基本原理是根据变速箱输出轴转速来计算车轮转速,然后将车轮转速乘以车轮滚动半径得到里程,里程除以时间得到速度。里程仪的样式多样,有数字式的,有指针式的,还有数字和指针一体化的(图 2-29)。本项目尝试设计制作的自行车里程仪能够在自行车移动时,将行驶的里程和速度实时以数字的形式显示,方便骑行者随时查看。452.设计符合事物特性的系统(1)初步设计根据提出的主要功能设想,研究以下问
97、题:需要测量哪些数据才能得到自行车的速度和里程?采用何种方法可以获取需要测量的数据?最终获取的速度和里程信息该如何显示?例如,借鉴汽车里程仪的原理,可以通过测量自行车车轮转动的圈数来获取速度和里程信息。这是因为车轮的周长是固定的,只要用这个周长乘以圈数就能得到骑行的里程,里程除以骑行时间便得到速度。初步设计如图 2-30 所示。如何检测自行车车轮转动的圈数?可以在自行车上设计一个检测点,传感器经过这个检测点的次数就是车轮转动的圈数,时间数据则可以通过程序中的时间函数获得。第二单元 基于开源硬件的信息系统(a)(b)图 2-29 各式里程仪活 动4.1 自主学习,了解不同种类交通工具检测里程和速
98、度的基本方法,完成表 2-3 的填写。里程仪名称检测方法汽车里程仪表 2-3 各式里程仪的检测方法开源硬件项目设计图 2-30 自行车里程仪初步设计图图 2-31 传感器位置示意图图 2-32 霍尔传感器(2)选择器件 选择车轮转动圈数传感器生活中用于记录次数的方法有很多种,红外传感器和磁感应(霍尔效应)传感器都可以用于次数统计。考虑到成本、感应速度、抗干扰及安装的便捷性,本作品选用霍尔传感器。霍尔传感器是根据霍尔效应制作的一种磁场传感器,广泛用于电机测速、位置检测等场合。如图 2-32 所示的霍尔传感器,其工作电压为 5V,有 3 个引脚,分别为 5V、OUT 和 GND,其中 OUT 用于
99、输出电平信号。当霍尔传感器感应到磁场时,OUT 引脚输出低电平;没有感应到磁场,则输出高电平。选择显示器件显示技术当前比较成熟,可利用的器件种类繁多,如数码管、液晶显示器(Liquid Crystal Display,简称 LCD)、有 机 发 光 二 极 管(Organic Light Emitting Display,简 称OLED),其中最为常见的是 LCD,例如 LCD1602,可以显示英文字母、数字和标点符号。它的成本低廉,不易损坏。由于本作品只需要显示数字,所以可选用 LCD1602 作为显示器件,实物图如图 2-33 所示。自行车里程仪的速度有两种不同的计算方式:一种是用里程除以
100、相对应的骑行时间,这样得到的是平均速度;另一种是用车轮周长除以车轮转动一圈的时间,得到的是瞬时速度。小贴士如何判断自行车是否处于运动状态??思考与讨论?打开配套资源,了解霍尔效应及霍尔传感器的使用方法。数字化学习磁感应接收头5VOUTGND46第二单元 基于开源硬件的信息系统为完成本项目制作,需要表 2-4 所示的核心器件。如果需要显示中文字符可选用哪些 LCD??思考与讨论?LCD1602 有两种型号,一种是标准的 16 个引脚,另一种是只有 4 个引脚。两者功能基本相同,但连入电路的方式略有差异。小贴士图 2-33 LCD1602 显示屏(3)可行性验证实验本项目需要验证用微控制器控制霍尔
101、传感器检查磁场的性能和 LCD1602 显示数字的功能。霍尔传感器检测磁场实验 根据图 2-34 连接器件。将霍尔传感器与 UNO 板相连,其 5V 和 GND 引脚分别与 UNO 板的 5V 和 GND 引脚相连,OUT 引脚连接 UNO 板的 2 号引脚,用于将检测信号输出到UNO 板。器件名称器件作用UNO 板处理信息霍尔传感器感应磁场变化LCD1602显示里程和速度等信息磁铁固定在车轮上,用于触发霍尔传感器表 2-4 项目核心器件图 2-34 霍尔传感器电路连接图霍尔传感器47开源硬件项目设计 编写程序。程序中用 2 号引脚来读取传感器输出的电平信号,如果电平值为 0,说明有磁铁经过,
102、将统计次数变量 count 的值加 1 后,在串口监视器中输出 count 的值。示例程序如下:图 2-35 测试结果int count=0;/定义整型变量 count 用于计数#define hullPin 2 /将 2 号引脚取名为 hullPinvoid setup()Serial.begin(9600);/设置串口波特率为 9600pinMode(hullPin,INPUT_PULLUP);/初始化 hullPin 引脚模式为带上拉电阻模式void loop()int sensorValue=digitalRead(hullPin);/读取 hullPin 引脚的输入信号值if(sen
103、sorValue=0)/如果信号值为 0,说明有磁铁经过 count+;/记录磁铁经过霍尔传感器的次数Serial.println(count);/在串口监视器中打印 count 值delay(200);/延迟 200 毫秒 数字电路中只有高电平和低电平两种状态。在通电初期,由于输出状态的高、低电平不稳定,需要利用上拉电阻将不确定的电路状态稳定下来,即通过一个电阻将不确定的信号稳定在高电平上,这就是带上拉电阻模式。由于 UNO 板的运行速度非常快,为了避免车轮转动较慢时程序重复检测信号,故在程序中设置了延时函数。小贴士 测试。将程序上传至 UNO 板,打开串口监视器,将磁铁来回在霍尔传感器下方
104、摆动,速度可以慢一些,同时人工统计磁铁经过霍尔传感器的次数,查看串口监视器输出的统计次数与人工统计次数是否相符或接近(图 2-35)。若相符,说明霍尔传感器能够用于统计自行车车轮转动的圈数。48第二单元 基于开源硬件的信息系统图 2-36 LCD 电路连接图 用 LCD 显示数字实验 根据图 2-36 连接器件。LCD 一共 有 16 个引脚,但此处不必全用。LCD 的 VSS 引脚、VO 引脚(连上电阻)、RW 引脚及 K 引脚均连接在面包板的负极上。VDD 引脚和 A 引脚连接在面包板的正极上。其他引脚分别与 UNO 板相连,即 RS、E、D4、D5、D6、D7 引脚分别与 UNO 板的
105、12、11、6、5、4、3 号引脚相连。最后将面包板的正负极分别与 UNO 板的 5 V 及 GND 引脚相连。编写程序,示例程序如下:如 果 选 用 的 LCD1602为 4 个引脚的型号,可上网搜索,了解其与 UNO 板的连线方式。数字化学习#include /调用 LCD 库函数 LiquidCrystalLiquidCrystal lcd(12,11,6,5,4,3);/创建 LiquidCrystal 对象 lcd,使用引脚 12、11、6、5、4、3void setup()lcd.begin(16,2);/初始化 LCD:每行 16 个字符,共 2 行lcd.setCursor(0
106、,0);/设置 LCD 输出的起始位置:第 1 行,第 1 个字符lcd.print(hello world);/利用 print()函数输出“hello world”lcd.setCursor(0,1);/设置 LCD 输出的起始位置:第 2 行的第 1 个字符lcd.print(2017);/利用 print()函数输出“2017”void loop()靠右端的 6 个引脚自左向右依次为 E、RW、RS、VO、VDD、VSS 从左端向右的 6 个引脚依次为 K、A、D7、D6、D5、D4 代码的开头可以调用 LCD 的 专 用 库 函 数LiquidCrystal。在 初 始 化部分对用到
107、的 UNO 板的引脚和变量进行定义,并创建一个 LiquidCrystal 类型的对象 lcd。自行上网学习,了解 LCD 库函数的使用方法和相关注意事项。数字化学习49开源硬件项目设计 测试。将程序输入 Arduino IDE,编译成功后上传至 UNO 板,查看 LCD 第一行是否显示“hello world”,第二行是否显示“2017”。(4)详细设计经过可行性验证,可知用霍尔传感器配以磁铁统计自行车车轮转动的圈数和用 LCD 显示自行车的速度、里程的方案可行,接下来合理安排器件的连接方式,将器件整合到一起构成完整的系统。图 2-37 测试结果图 2-38 自行车里程仪电路连接图50第二单
108、元 基于开源硬件的信息系统3.实现作品设计方案及其优化(1)制作原型利用已选择的器件,根据详细设计的电路图连接电路,搭建自行车里程仪的原型,如图 2-39 所示。活 动4.2 根据给出的实验步骤,完成以上两个可行性验证实验。小组交流各自实验中遇到的问题及采用的解决办法。图 2-40 制作完成的自行车里程仪原型图 2-39 搭建自行车里程仪原型若在可行性验证实验中遇到困难,可打开配套资源,阅读提供的参考程序。数字化学习51开源硬件项目设计本作品中将两次车轮转动的时间差大于 5 秒的情况默认为自行车不在骑行状态。小贴士图 2-41 自行车里程仪程序流程图(2)编写程序根据自行车里程仪的功能,程序首
109、先读取霍尔传感器输出的电平状态,如果检测到其引脚输出为低电平,说明有磁铁经过,车轮在动,给圈数加 1 且将计算得到的速度和里程显示在 LCD 上。如果没有,则继续判断两次计时的时间间隔是否大于 5 秒,大于 5 秒说明自行车停止不动了,将速度设为0,并在LCD上显示。自行车里程仪程序示意图如图2-41所示。自行车里程仪最终是要安装在骑行的自行车上,那么搭建其原型时有哪些注意事项??思考与讨论?图 2-41 自行车里程仪程序示意图52第二单元 基于开源硬件的信息系统图 2-42 测试自行车里程仪测 试 作 品 时 可 用USB 线给 UNO 板供电,但若要将自行车里程仪安装到自行车上,则需要利用
110、电池供电。打开配套资源,了解用电池给 UNO板供电的方法。数字化学习图 2-43 在自行车上安装自行车里程仪(3)测试与优化作品测试原型能否呈现预设的效果,即每当磁铁经过霍尔传感器,查看 LCD 是否会显示速度和里程。将测试好的自行车里程仪安装到自行车上,骑行查看其能否正确地显示速度和里程。测试效果如图 2-42 和图 2-43 所示。自行车里程仪搭建完成,如果能正常工作,仍然需要思考还有哪些地方可以改进。只有不断地改进优化,才能创造出完美的作品。本作品可能改进的方向如表 2-5 所示。霍尔传感器磁铁UNO 板、LCD 及电池等USB 供电磁铁霍尔传感器53开源硬件项目设计例如,某同学在骑行时
111、发现程序显示的车轮转动圈数和真实的圈数不同。在验证霍尔传感器时,也发现记录的圈数有遗漏。这是什么原因导致的?该如何改进?原因分析:固定在车辐条上的磁铁经过霍尔传感器是瞬间发生的事件,如果程序中出现 delay 语句或者程序行数比较多,那么当霍尔传感器输出电平变化时,有可能此刻程序并没有正在读取引脚的数值,从而造成漏测。解决思路:可以用当 Arduino 的引脚电平发生高低改变时立即“通知”程序的方法来解决这一问题。这需要使用Arduino 开发板自身提供的称作“中断”的机制来实现。参 见 P56 知 识 链 接“优化”可能优化的方向具体说明添加里程计数重置按钮按下按钮清空当前里程计数,重新开始
112、记录。若没有这个按钮,则需要断开开发板的电源提高连线的可靠性里程仪的原型用面包板、跳线连接,若遇到强烈颠簸可能造成接触不良。可采用焊接方式提高系统的可靠性添加速度指示灯利用多个 LED 或者灯带呈现灯光随速度变化的效果,如突然减速时显示闪烁红灯提高显示效果将 LCD 改为 OLED,其外观更小巧美观,适合显示图形;还可考虑用指针显示速度减少车轮转动圈数漏测用轮询的方式检测霍尔传感器的状态很可能漏检。用微控制器的中断特性可减少漏测,提高数据的精确性表 2-5 自行车里程仪优化方向54第二单元 基于开源硬件的信息系统参见 P56 知识链接“中断”打开配套资源,阅读中断程序编写方法及优化后的程序。数
113、字化学习活 动4.3 尝试搭建自行车里程仪的原型,再参考程序示意图,编写自行车里程仪程序,并优化作品。图 2-44 中断服务程序和主程序信息交换示意图UNO 板不停地读取、查看霍尔传感器引脚的状态,此工作方式称为“轮询”,其优点是程序设计方便,缺点是 CPU运算能力浪费。UNO 板还有一种工作方式,称为“中断”。好比一个人同时进行烧开水、拖地两件家务,在拖地时,一旦水沸腾,鸣笛壶发出声音来通知人,这时人便会中断当前的拖地工作,先去关火,然后继续拖地。如图 2-44 所示,可以利用一个霍尔传感器电平变化标志位来实现中断服务程序和主程序之间的信息交换,优化自行车里程仪程序。主程序处理速度和里程的计
114、算及显示,并查看变化标志位。当霍尔传感器发生电平变化时(类似鸣笛壶发出声音),会立即运行中断服务程序,将变化标志位设为有效;主程序通过查看变化标志位是否有效,便能得知在过去的时间内霍尔传感器有无经过磁铁,即得知车轮是否转动了一圈。55开源硬件项目设计知识链接优 化优化(optimize)会贯穿作品的整个生命周期,常见的优化可以分为两类,一是改善已有设计,即针对现有设计的不足进行改善;二是强化设计,即在现有作品的基础上提高性能或增加新的功能。优化的方向,既可以从测试或体验作品时得到的反馈信息中来,也可以从设计本身去反思或发现需要改善和优化的地方。常见优化方向如表 2-6 所示。思考维度内 容它满
115、足需求了吗?作品预设的功能是否实现?工作起来是否有效并可靠?它使用起来安全吗?它本身是否安全?是否会对使用者或者外部事物、环境等造成伤害?它的制作环节有改进的地方吗?作品的硬件和程序结构是否清晰?使用的材料组装是否合理?材料结构是否稳定?它的外观设计合理吗?作品外观是否漂亮、安全、稳定、耐久?是否适应工作的环境?它的成本合理吗?成本是否超出预期?还有哪些方面可以节省成本?中 断中断(interrupt)是计算机的一个重要概念,现代计算机普遍采用中断技术。CPU 执行程序是按指令一条一条向下顺序执行的,但如果此时发生了某一事件 A 请求 CPU 迅速去处理(中断发生),CPU 暂时中断当前的工作
116、,转去处理事件 A(中断响应和中断服务)。CPU 将事件 A 处理完后,会再回到原来被中断的地方继续执行程序(中断返回),这一过程称为中断。这一过程类似于你正在读书,这时电话响了,你放下手中的书去接电话,接完电话后再回来,并从停止的地方继续往下读。计算机的工作方式与人类类似,假设你有一位朋友来造访,由于不知道何时到达,你只能在门口等待,于是什么事情也干不了。如果在门口装一个门铃,你不必在门口等待而可以去做其他的事情,朋友来了按门铃通知你,你这时才中断工作去开门,这样就避免等待和浪费时间。计算机也是一样,如键盘输入,若不采用中断技术,CPU 将不断扫描键盘是否有输入,这样会经常处于等待状态,降低
117、工作效率。采用中断方式,CPU 可以进行其他的工作,当键盘有按键并发出中断请求时,才予以响应,暂时中断当前工作转去执行读取键盘按键,读完后又返回继续执行原来的程序,这样大大提高了计算机系统的效率。“中断”工作过程如图 2-45 所示。表 2-6 作品优化方向56第二单元 基于开源硬件的信息系统图 2-45 “中断”工作过程计算机运行过程中存在大量的中断请求。打开计算机设备管理器,可以看到如图 2-46所示的中断请求列表。图 2-46 中断请求列表中断请求列表中断 0 是系统时钟,中断 1 是键盘,中断 12 是鼠标若它们同时请求中断该怎么办?计算机会对这些中断进行编号,中断号越低的优先级越高。
118、所谓优先级,就是当两个或多个中断请求同时发生时,CPU 先响应优先级高的中断。UNO 板支持 RESET 中断、时钟中断、外部中断等几种中断。RESET 中断,指 RESET 引脚输入为低电平时,中止当前程序,执行 RESET 中断。时钟中断,指设定 CPU 内部定时器后,当到达指定时间,将产生中断请求,常用于定时。外部中断,指当 CPU 的外部中断引脚电平变动时,产生中断请求。常用于键盘输入、串口通信等。UNO 板有两个引脚(2 号和 3 号引脚)支持外部中断,自行车里程仪优化案例使用的就是外部中断。57开源硬件项目设计常见的输出设备在开源硬件项目中,常见的输出设备可以大致分为发光器件、显示
119、器件、发声器件、执行装置等几类。例如,项目二的交通灯作品中用到的 LED 是一种发光器件,而本项目中提到的LCD、数码管、有机发光二极管都是显示器件。图 2-47 所示的是四位数码管,只能显示数字,常用于医用数字温度计、体重计等。设计制作低头报警器时用到的蜂鸣器则是一种发声器件。此外,扬声器也是一种常用的发声器件,如图 2-48 所示。图 2-47 四位数码管图 2-48 扬声器常见的执行装置有电机和舵机。电机常用于驱动车轮、风扇等,如图 2-49 所示;舵机常用于改变云台的角度、调整固定翼飞机副翼的角度及改变机器人手臂关节位置,如图2-50 所示。在后续的项目六中会用到电机和舵机。图 2-4
120、9 电机图 2-50 舵机58第二单元 基于开源硬件的信息系统一、项目任务炎炎夏日,风扇是家里必备的电器。一些款式较老的旧风扇,使用过程中可能会存在不能远程调速、自动开关等问题,不具备智能。有了开源硬件,我们可以自己动手改进,创新出个性化的智能风扇。例如,当有物体(人或宠物)过于靠近风扇时,风扇会自动停止转动;可以在家里的任意角落遥控风扇的转速和摆动方向等。考虑到安全问题,本项目只需设计并制作智能风扇模型,而不直接改造真实的风扇。制作风扇模型时,建议选用3V 左右的低压直流电机,以免发生危险。二、项目指引1.以小组为单位,采用头脑风暴的方法确定创意风扇的核心功能。2.根据信息系统的基本构成,确
121、认创意风扇的系统结构图,明确各个组成部分的功能及系统间数据的流向。3.开展数字化学习,了解各个功能模块的实现方法,然后确定好选用的方案,最后形成初步设计方案。4.根据初步设计方案,选用合适的微控制器和其他器件,并进行可行性验证实验,验证器件是否支持初步设计方案。在此基础上形成详细设计方案。5.按照详细设计方案,搭建创意风扇的原型,并根据核心功能编写程序。6.测试作品,然后对创意风扇进行造型设计,使之既美观又实用。三、交流评价与反思各小组在班级内展示和交流创意想法的来源、设计制作过程中的设计文件、程序及成品等,以及设计制作过程中遇到的问题和采用的解决方法。同时认真听取他人的建议或意见,然后据此对
122、作品进行进一步优化,使之更加“完美”。单元挑战 设计制作创意风扇我们小组遇到的问题:采用的解决方案:59开源硬件项目设计一、主要内容梳理二、单元评价单元小结评价内容达成情况了解基于开源硬件的信息系统的基本构成(A)根据实际生活中的问题,综合运用科学、数学、技术等学科的知识,对低头报警器和自行车里程仪等进行抽象,设计出能够解决问题的信息系统(A、T、I、R)体验将具体问题进行抽象,基于功能要求利用开源硬件搭建符合事物特性的信息系统(A、T、I)了解传感器的工作原理和工作方式,分析其在信息系统中的作用(A、I)能够正确地测试并验证器件的可用性(T、I)能够根据设计方案,选用恰当的开源硬件及其他器件
123、,搭建作品的原型(A、T、I)根据功能需求,编写程序示意图,然后选用恰当的编程语言编写程序(T)将设计制作完成的作品在班级和校园开源社区中进行分享,践行开源的精神(I、R)说明:A信息意识,T计算思维,I数字化学习与创新,R信息社会责任6060现今,越来越多的人利用开源硬件和互联网技术加入创客行列,去发现、解决一些生活中的问题。例如,我们发现看书或做作业时眼睛距离书本太近会对视力造成负面影响,于是利用开源硬件设计制作了低头报警器。创新过程中难免遇到各种新技术或困难的挑战,这时应充分利用数字化工具来获取资料,帮助自己理解、掌握解决问题所需的技术、工程、艺术与数学等学科的相关知识;此外,还要及时和
124、同伴分享信息、交流想法和资源,协作解决问题,践行开源与知识分享的精神。本单元将带领大家以解决现实生活中的真实问题为出发点,利用开源硬件,充分发挥自主性设计制作智能园艺装置和无人船模型,感受和体验开源硬件项目的设计与开发。第三单元 开源硬件项目设计与开发 基于事物特征分析,应用信息系统的基本结构设计基于开源硬件的作品开发方案。根据设计方案,选择利用开源硬件的设计工具或编程语言,自主实现作品的各种功能模块。完善项目作品设计方案,践行开源硬件与知识分享的精神。学习目标设计制作远程快递收件盒单元挑战项目学习目标在本项目中,我们将利用开源硬件设计制作一个智能园艺装置,帮助监测植物的生长环境。完成本项目学
125、习,须回答以下问题:1.智能园艺装置有哪些特点?如何设计合适的、符合自己能力的作品开发方案?2.如何根据设计方案,制作智能园艺装置的原型并编程实现监测数据的输入、处理及输出?3.无线数据传输的一般方法有哪些?如何根据作品需要选择恰当的传输方法?项目五设计制作智能园艺装置体验无线数据传输图 3-1 自动浇水苗圃家中、校园里一般都会栽种各种植物。不同植物对水、光照等的需求各不相同,如果得不到精心照顾,植物往往会生长缓慢、生病甚至死去。能否设计制作一个装置(图 3-1),用来检测植物的生长环境,如温度、湿度、光照等,并告知和帮助人们更专业地呵护植物呢?考虑到这些植物可能分布在家中或学校里的不同位置,
126、该装置需要通过无线传输来收集各监测点的数据。如果这个想法能实现,还可以将其应用到田间地头,变成一款帮助农户对农作物的种植环境进行监测的设备,告知何时该浇水施肥与此相类似,生活中的许多问题都可以提出一些解决的想法,并尝试应用开源硬件来实现。若要设计制作一个智能园艺装置,你会有哪些想法?能否将想法变成作品?项目学习指引1.提出想法为了更好地照顾植物,希望有一个智能园艺装置,帮助监测植物的生长环境。监测的结果可以通过手机、计算机等来实时查看,而不用让人待在监测装置前。63 不同植物对环境的要求差异很大,我的智能园艺装置服务于哪一种或哪一类植物?影响这种或这类植物生长的重要环境因素有哪些?温度?湿度?
127、还是其他?最为关键的是什么?这种或这类植物正常生长的最佳温度范围是什么?考虑到观察数据的方便性,最好有一个无须固定在花盆里的装置来显示监测数据,那么,数据如何传输到远端的装置处?检测装置需要有良好的稳定性,安装使用方便且应该能长期置于室外环境,该怎样设计装置,以适应不同环境条件达到实用的目的?不同的检测维度分别具备什么样的数学特征?不同数据之间是如何转换的?例如,某植物的适宜温、湿度范围与传感器测试数据之间如何对应?由于受环境影响,传感器检测的数据会受到干扰,使得数据不够平滑,如何降低这些影响?除了显示数值,还有哪些方式可以提醒用户加强植物护理?如何给室外监测装置供电?提出想法时,不妨采用头脑
128、风暴来集思广益,经过讨论确定项目的核心功能。在这个过程中要学会做“减法”,即去除不必要的功能,将其精简到不能再精简为止,这样有利于将精力、资源等集中在解决最重要的问题上,从而更好地推动项目进展。小贴士 收集哪些植物生 长环境数据?如何监测植物的 生长环境?数据需要经历 哪些处理?如何传输数据?信息如何显示?如何对信息作出 反应?第三单元 开源硬件项目设计与开发为了更好地回答图3-2的问题,可以围绕涉及的事物园艺监测,从科学、技术、工程、数学等角度来分析。图 3-2 提出问题开源硬件项目设计活 动5.1 为了设计智能园艺装置,首先需要学习有关植物和工程方面的基础知识。我的装置计划监测的植物是 。
129、我学习的知识主题作 用环境温度变化对某植物生长的影响确定是否需要收集温度数据,并确定该植物适宜的温度范围土壤湿度对某植物生长的影响确定是否需要收集土壤湿度数据,并确定该植物适宜的湿度范围5.2 确定该装置的基本功能需求和约束条件,并填入表 3-2 中。2.设计基于无线数据传输的系统(1)初步设计制作的智能园艺装置系统首先是通过一个或多个传感器收集植物的相关生长环境数据,完成信息的采集工作。然后微控制器对收集得到的数据进行处理,最后远程传输给显示器件呈现出来。智能园艺装置系统初步设计如图 3-3 所示。要实现的功能约束条件测量空气温度温度范围为-20 60无线数据传输传输距离 50 米以上表 3
130、-1 自主学习的基础知识表 3-2 智能园艺装置的基本功能需求和约束条件64第三单元 开源硬件项目设计与开发图 3-3 智能园艺装置初步设计图图 3-4 智能园艺装置设计草图图 3-5 智能园艺系统结构图信息呈现的方式有很多种,如通过串口监视窗、LCD、数码管等来显示,甚至可以将信息发送到手机屏幕上显示。测得的数据经过处理后,也可以用LED闪烁、蜂鸣器发声等方式直接提醒观测者。小贴士无线数据传输的方式有蓝牙、Wi-Fi、红外和射频等,每种方式各有不同的适用范围。小贴士蜂鸣器报警的内容可参考项目三“设计制作低头报警器”。小贴士需求情境不同,形成的设计方案会有差异。每个人可根据自己的技术条件、现有
131、工具、器件等来决定。以下为两位学生的初步设计方案。应用情境:教学楼后面放置着一盆植物,为精心呵护它的生长,需要了解该植物的生长环境温度及土壤湿度。当检测得到的温度值不在该植物最佳的生长温度范围内时,系统会通过蜂鸣器发出报警声。设计方案 1参见 P71 知识链接“无线数据传输”65开源硬件项目设计应用情境:校园的东南角和西南角各有一个花坛,为更好地呵护花坛中植物的生长,需要实时了解它们的环境温度及土壤湿度,且数据能够同时在一个显示器上查看。图 3-6 智能园艺装置设计草图活 动5.3 参考上面的样例,将自己的想法转变为智能园艺装置的初步设计。当一个装置中需要多块 开 发 板 来 分 担 任 务,
132、或当一块开发板上需要通过一个接口与多个器件交换数据时,可采用串口数据 总 线,如 I2C 或 串 行 外围 接 口(Serial Peripheral Interface,简称 SPI)的方式来连接。小贴士设计方案 2图 3-7 智能园艺系统结构图参见 P72 知识链接“数据接口的常见类型”66第三单元 开源硬件项目设计与开发活 动5.4选用合适的器件来支持自己的智能园艺装置的初步设计,并完成表3-4的填写。无线传输模块传输距离传输方向传输方式传输频率适配的微控制器类型价格性能特点(从工程、数学、科学、技术等角度)433100 米单向点对点433MHzArduino较低信号强,穿透、绕射能力强
133、APC2201000 米双向一点对多点415MHz 455MHzArduino、树莓派等较高适应温度在-20 70,信号强,传输距离长,穿透、绕射能力强蓝牙10 米双向点对点2.4GHzArduino、树莓派、PC机、智能手机等中等适应温度在-20 70,低功耗,短距离传输过程中衰减大,信号穿透、绕射能力弱,信号容易被物体遮挡器件名称需求选用型号适配的微控制器类型温度传感器测量温度范围为0100,价格较低,使用简便 LM35 温度传感器Arduino(2)选择器件 同一功能可以通过不同器件来实现,选择器件前应先了解并比较各类硬件产品的型号、规格、应用场合及使用的方式方法。设计方案时,可依据初步
134、设计中的信息系统结构图从信息输入(传感器)、信息处理(微控制器)、信息传输及信息输出(显示器件)等几方面综合考虑,结合工程、技术、数学、科学等学科知识来开展选择。例如,依据传输的距离,数据的无线传输模块有很多种,常见的如表 3-3 所示。应该充分结合被监测植物的特性及测量器件的工程技术特性来选择数据检测器件。例如,如果检测对土壤湿度较为敏感的植物,则需要选择测量湿度精度较高的器件。小贴士表 3-3 常见的无线传输模块表 3-4 智能园艺装置器件表67开源硬件项目设计(3)可行性验证实验选 择 的 器 材 能 否 支 撑 完 成 预 期 的 功 能?在 本 项 目中,需 要 重 点 考 虑 三
135、方 面:传 感 器 采 集 数 据 的 可 行性,无线数据传输的可行性,数据的处理与显示功能。例如,选用 UNO 板作为微控制器来验证 433 无线传输模块能否实现数据(控制命令)点到点的传输功能。发射端输出自然数序列,接收端接收后,最终在串口监视器中显示(图 3-10)。发射端和接收端的连线如图 3-8、图 3-9 所示。图 3-8 发射端连线图图 3-10 接收端接收的自然数序列第一次选用新器件时,通常会预备至少两个,然后用最简单的代码测试其功能。若不出现预期效果,且连线、代码等都检查无误,则要更换一个器件来实验。若备用的器件也出现问题,可以尝试使用万用表、示波器等专业设备进行检测。小贴士
136、打开配套资源,学习范例的可行性验证实验。在网上搜索或在开源社区中学习 APC220、433 等无线传输模块的使用方法。数字化学习图 3-9 接收端连线图68第三单元 开源硬件项目设计与开发活 动5.5 开展数字化学习,了解相关可行性验证实验的开展方法并进行实验;将实验过程记录在表 3-5 中。实验名称实验目的预期效果实际效果结论或发现实验 1:验证 433 无线传输模块的性能验证无线传输模块的可用性能够在接收端收到发射端发出的数据(4)详细设计可行性验证实验过程中,若器件不能实现预期的功能,需要更改器件或调整初步设计方案;若能,就需要构建系统的详细设计方案。在此过程中,由于本项目连接的器件较多
137、,需要考虑开发板的引脚是否足够,装置能否适应将来的工作环境,如何保证给装置安全、稳定地供电,与器件配套的库文件能否在一个项目文件中完成编译,采用怎样的连线方式能够让装置高效运作等具体问题。活 动 5.6 根据初步设计及选择的器件,完成智能园艺装置的详细设计方案,绘制电路连接图。表 3-5 可行性验证实验记录单打开配套资源,学习范例的详细设计方案。数字化学习69开源硬件项目设计3.实现数据的采集及无线传输(1)制作原型根据已完成的详细设计方案,利用选择的器件,连接电路,搭建智能园艺装置原型。图 3-11 和图 3-12 是根据设计方案 1 搭建的装置原型。(2)编写程序在原型的基础上,编写控制程
138、序,实现智能园艺装置预设的功能。首先要将系统的功能划分为若干模块,确定各模块间传输数据的类型、各模块间的逻辑关系及功能点。然后绘制模块或系统的程序示意图。图 3-13 是设计方案 1 的功能模块图,分为检测端和显示端两大模块。图 3-11 智能园艺装置发射端原型 图 3-12 智能园艺装置接收端原型图 3-13 设计方案 1 的功能模块图在绘制完成各模块程序示意图的基础上编写程序。将编写完成的程序上传,进行测试,检查能否达到预计效果。如果没有达到预计的效果,可以从检查程序有无语法或者逻辑错误、器件是否正确连接、器件是否完好等方面进行复查。此外,也可以到开源社区寻求解决方法。小贴士土壤湿度传感器
139、433 无线传输模块433 无线传输模块70第三单元 开源硬件项目设计与开发(3)外观设计及优化智能园艺装置的检测端一般放置在户外,需要应对露天的各种严苛条件,如雨水浇淋、阳光暴晒、大风吹刮等。所以设计装置的外观结构及造型时,必须要考虑到这些因素,保证装置能够持续、稳定地工作。图 3-14 是某学生设计的智能园艺装置的外观。活 动5.7 完成智能园艺装置的制作并进行优化。(1)根据自己的详细设计方案搭建智能园艺装置的原型,并总结在该过程中遇到的问题。(2)将程序分解为各个功能模块,绘制程序示意图并编写程序。(3)完成作品的外观设计制作,为其拍摄照片或者视频。(4)整理作品设计制作过程中的相关文
140、档,包括设计草图、程序文档、材料清单等,并将其分享到校园开源社区中。图 3-14 某学生的智能园艺装置外观设计图知识链接无线数据传输在利用开源硬件设计项目的过程中,常常会遇到将多个子系统关联到一起,构成一个功能较复杂或较大型的信息系统的情况。这时,人们通常会采用无线数据传输技术来连接多个子系统。常见的无线数据传输方式有基于射频无线模块的直连和基于 Wi-Fi 模块的 TCP/IP 连接。在具体选用时,10 米以内的点对点传输可以采用 433、蓝牙模块;十几米到几百71开源硬件项目设计米的传输可以采用 433、HC-11 模块;1000 米到几千米的传输则可以采用 APC220 或nRF24L0
141、1 模块。数据接口的常见类型开发板上的相关引脚组合在一起构成了数据接口。常见的数据接口有串行接口、SPI接口、I2C 接口,以下以 UNO 板为例进行介绍。串行接口:UNO 板上的数字引脚 0(RX)和 1(TX)组成串行接口,TX 表示 Arduino 发送指令信息给接收端,RX 表示 Arduino 接收来自发射端的指令信息。SPI 接口:可用来扩展数字引脚,也可用来连接 nRF24L01 网络模块。UNO 板上的10、11、12 和 13 号引脚组成 SPI 接口。SPI 接口主要用于串行数据的传输,传输速度比TX 和 RX 串行接口更快。而 USB 接口主要用于连接 PC 机,从 ID
142、E 下载和调试程序。下载程序时,Arduino 板上 TX 和 RX 的指示灯会不停地闪烁。I2C 接口:UNO 板上的 A4 和 A5 两个模拟引脚组成 I2C 接口,用于连接 I2C 总线。I2C接口主要用于多块 Arduino 开发板之间的连接和与外部模块的通信。I2C 总线是一种简单的串行总线,用于串接多个开发板或传感器。如图 3-15 所示,它由两根线组成,一根是时钟线(SCL),另一根是数据线(SDA)。凡是遵循 I2C 协议的器件都可以通过总线来双向传递信息,但在所有串接的器件中只有一个是主器件,用以启动或终止数据传送,其余的器件为从器件。Arduino 的核心是相对简单的单片机
143、,数据处理的能力并不是很强,因此,串行接口的使用频率较高。图 3-15 I2C 总线结构从器件 1主器件从器件 2从器件 4从器件 3总线72第三单元 开源硬件项目设计与开发物 联 网物联网(Internet of Things,简称 IoT)是新一代信息技术的重要组成部分,指的是“物物相连的互联网”,被视为互联网的应用扩展。这其中有两层含义:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展;第二,其用户端延伸和扩展到了任何物品与物品之间,它们进行信息交换和通信。因此,物联网也可定义为通过射频识别(Radio Frenquency Identification,简称 RFID
144、)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理的一种网络。本项目中提供的设计方案 2 就是一个典型的物联网实例。和传统的互联网相比,物联网至少具有三个关键特征:一是各类终端实现“全面感知”;二是电信网、互联网等融合实现“可靠传输”;三是云计算等技术对海量数据“智能处理”。物联网最大优势在于各类资源的“虚拟”和“共享”,这也与通信网发展的扁平化趋势相契合。根据物联网对信息的感知、传输、处理和应用的过程,可将物联网体系划分为感知层、网络层和应用层。具体结构如图 3-16 所示。拓展
145、阅读图 3-16 物联网体系结构摘自大话物联网73项目学习目标在本项目中,我们将利用开源硬件设计制作一艘无人船模型。完成本项目学习,须回答以下问题:1.如何根据对船的特征分析,设计基于开源硬件的无人船模型方案?2.船的控制方式有哪些?如何根据自己的需要选择恰当的动力方式?3.用输出数据驱动执行装置的方法有哪些?4.如何实现简单信息系统的自动控制?项目六设计制作无人船模型利用输出数据驱动执行装置近年来,随着技术的发展,一些环境监测机构尝试利用无人船监测水质。比起过去靠人工驾船到相关水域进行采样,无人船监测更能节省成本,提高效率,还可以到达有潜在危险的水域,如污染区和深水区等。除了可以通过遥控器或
146、地面控制基站操控外,有些水质监测无人船还具备自主导航和自动避障功能。另外,无人船在水域测绘、资源勘探、水上救援、海岛巡逻、货物运输等领域都可以大展身手(图 3-17)。那么,能否利用开源硬件,设计制作一艘小巧轻便、操作简易的无人船模型?与之前的智能园艺项目不同的是,无人船需要利用输出数据驱动执行装置,实现船的前进、后退、转向等。图 3-17 我国的无人艇和科考船在南极进行探测工作 无人船的航行环境可能是浅水区、水草区等,如何设计船体来适应这些环境?无人船需要多长的续航时间?可采用怎样的供电方式?哪些因素会影响无人船的平衡?外形结构、船体上器件的布局或其他?如何控制无人船的航行?是否需要无线遥控
147、?无人船是否需要自动巡线航行功能?如何实现?无人船航行的动力如何产生?项目学习指引1.提出想法无人船多在各种复杂水域环境中航行,它应该具有哪些必备功能?哪种控制方式使得船易于操控?这些功能又该如何使用开源硬件来实现?我们可以从信息系统构成的角度出发来提出问题(图 3-18)并开展设计。75第三单元 开源硬件项目设计与开发 如何获取无人船 的操控信息?如何控制船的前 进、后退、转向?选择哪种开发板 最合适?如何判别输出的 信息?活 动6.1 为了设计无人船,需要学习有关的基础知识。请完成表 3-6 的填写。我学习的知识主题作 用船的动力来源确定选用的动力系统类型和船的驱动方式为了更好地实现无人船
148、的设计方案,可从科学、技术、艺术与数学等多维度提出思考的问题,并协作开展探究。图 3-18 提出问题表 3-6 自主学习的基础知识开源硬件项目设计活 动6.2 确定无人船的基本功能需求和约束条件,并填入表 3-7 中。基本功能需求约束条件能在浅水区或水草区航行水草或风浪会对船的航行产生巨大阻力无线遥控,目视范围内操作控制信号的传输距离在 30 米以内2.根据应用情境设计系统(1)初步设计 设计无人船的核心问题是如何让数据通过信息系统去驱动执行装置。例如,数据从遥控装置端通过无线传输发送到无人船,然后被转换为控制执行装置的数据。这个过程中的数据可以是人工控制发送,也可以是自动控制发送。本作品可以
149、从遥控装置和无人船两个部分进行设计。无人船系统基本构成如图 3-19 所示。无线遥控的方式有多种,无线数据传输的方式也有多种,最终的方案需要根据自身的技术条件、现有工具、器件并结合作品功能设想等来决定。图 3-19 无人船模型系统初步设计图遥控装置设计的基本要求是高性能、低成本、运行平稳、控制灵活、线路简单、抗干扰能力强。小贴士参见 P85 知识链接“自动控制”表 3-7 无人船的基本功能需求和约束条件76第三单元 开源硬件项目设计与开发两位学生设计的都是空气动力船(又称风动船),即在船上安装带扇叶的电机和舵机。电机旋转产生动力来推动船的前进,通过风扇的正转、反转实现船的前进或后退;舵机转动实
150、现船的转向。小贴士常见的遥控船模型的控制方式是带有方向杆和速度杆的遥控器,还有其他的控制方式吗??思考与讨论?上网了解并自学船的运动方式及相关的控制知识,甚至可以借鉴开源社区中较为成熟的设计方案,但一定要标明原作者及相关改进者的信息。数字化学习以下为两位学生根据不同的应用情境设计的两种初步设计方案。图 3-20 无人船模型设计草图运动装置图 3-21 无人船模型系统结构图应用情境:无人船利用船尾螺旋桨的旋转推动空气来驱动,它能在浅水区以固定速度在目视范围内航行。设计方案 1遥控装置77开源硬件项目设计图 3-23 无人船模型系统结构图图 3-22 无人船设计草图活 动6.3 参考上面的样例,将
151、自己的想法变为无人船模型的初步设计。应用情境:无人船利用船尾螺旋桨的旋转推动空气来驱动,能在浅水区航行且速度可调,还具有视频采集和回传的功能;当船超出无线遥控的范围后,会自动返回出发点。设计方案 2参见 P84 知识链接“动力器件的供电与控制方式”运动及视频采集装置遥控装置视频查看装置78第三单元 开源硬件项目设计与开发电机图片尺寸(mm)额定电压(V)转速(r/min 表示每分钟旋转圈数)适配螺旋桨孔径(mm)价格性能特点(从工程,数学、科学、技术等角度)适配的微控制器类型空心杯电机20773.7450001适中电流低、转速高、低 压 启 动、低 噪音、损耗低、电机效率高、节能省电Ardui
152、no微型130 小电机20153816170002较低转速较低、价格低廉Arduino活 动6.4 根据无人船模型的初步设计,选用合适的器件并填入表 3-9。器件名称需 求选用型号适配的微控制器类型舵机的选择可以从旋转角度、尺寸、适配的微控制器类型、价格、性能特点等方面综合考虑。小贴士(2)选择器件根据初步设计,首先选择合适的开发板,然后选择其他器件。选择其他器件时注意考虑与开发板的匹配性。执行装置一般会有特定的工作要求,不同的器件适配的微控制器类型不一样。电机是本项目中执行装置的主要部分,可按照工作电压和工作方式划分为不同的种类(表 3-8)。表 3-8 两种电机的比较表 3-9 无人船模型
153、器件表79开源硬件项目设计图 3-25 空心杯电机测试效果图 3-24 空心杯电机连接电路图为避免烧毁开发板,一般使用电机驱动模块为电机供电及驱动,而不直接用UNO 板供电。无线数据传输的相关内容可参见项目五“设计制作智能园艺装置”。小贴士查看教材资源配套网站上的相关内容,了解摇杆无线控制装置的搭建及验证方法。数字化学习(3)可行性验证实验选择好器件后,要验证设计是否合理,器件是否合适。在本项目的设计方案 1 中,可能需要验证的是:微控制器如何控制电机,遥控装置如何控制方向和速度,无线数据装置如何传输速度和方向等信息。以验证空心杯电机为例,若以 UNO 板来控制,验证实验的连接电路图及测试效果
154、分别如图 3-24 和 3-25 所示。活 动6.5 根据自己的初步设计方案,开展可行性验证实验,用表 3-10 记录实验过程。实验名称实验目的预期效果实际效果结论或发现实 验 1:验 证空心杯电机的控制方法了解开发板控制空心杯电机的工作方法空心杯电机正常旋转,能够正转及反转表 3-10 可行性验证实验记录单扇叶空心杯电机电机驱动模块80第三单元 开源硬件项目设计与开发(4)详细设计可行性验证实验完成后,需要进一步考虑方案的细节内容,如遥控杆的数量,开发板的哪个引脚可用于速度控制,哪个引脚可用于方向控制,如何连线能避免电机和舵机的相互干扰等。图 3-26 无人船遥控装置原型图 3-27 无人船
155、运动装置原型活 动6.6 根据初步设计及选择的器件,完成无人船模型的详细设计方案,绘制电路连接图。3.实现数据驱动的动力控制(1)制作原型根据详细设计方案制作无人船原型的过程中,必须考虑整个系统供电的稳定性。因为供电的不稳定会直接影响整个系统的运行。另外,还要考虑运动装置原型的结构尺寸,使其能装入船体或平稳搭建在船体上。图 3-26 和图 3-27 是根据设计方案 1 搭建的无人船原型。打开配套资源,学习范例的详细设计方案。数字化学习电机驱动模块变压模块433 无线传输模块舵机遥控杆81开源硬件项目设计(2)编写程序及测试无人船系统工作的流程:输入速度或方向等控制信息,微控制器对输入的信息进行
156、处理,然后无线传输至无人船的执行装置,使无人船的速度和方向等作出相应的调整。本项目的程序设计可以从数据流入手,明确每个模块间传输的数据类型及流向。无人船的程序可分为遥控装置和无人船两部分。设计方案 1 的功能模块如图 3-28 所示,数据流如图 3-29 所示。遥控装置模块无人船运动装置模块绘制好各模块程序示意图后,在其基础上编写控制程序。将编写完成的程序上传、测试,检查能否达到预计效果。由于尚未设计船体,无人船此时的测试结果只能看到电机和舵机是否转动。(3)外观设计及优化保证无人船顺利航行的一个关键点是船体的平衡性,即所有器件的布局应该满足无论船体在何种运行状态下始终都能稳固且平衡的条件。如
157、何合理规划算法和控制逻辑,让速度信息和方向信息互不干扰??思考与讨论?由于本设计方案中的无人船需要同时完成多个任务,例如数据传输和执行装置控制,因此程序中要适当运用多任务机制。根据选用硬件的不同,通常有轮询、异步、多线程(也称并行)几种程序设计方法。以Arduino 为例,由于它不支持多线程和异步机制,所以常用轮询的方法来实现多任务。具体方法及程序详见配套资源。小贴士图 3-29 设计方案 1 的数据流网上搜索或查看配套资源,了解脉冲宽度调制(Pulse-Width Modulation,简称 PWM)的原理、功能及应用方法等。打开配套资源,查看范例的程序。数字化学习图 3-28 设计方案 1
158、 的功能模块图82第三单元 开源硬件项目设计与开发那么,选用何种材料来制作船体?船体可以设计成怎样的形状?如何布局各器件在船体上的位置,能使无人船兼具较高的稳定性、实用性和艺术性?这些都是制作船体外观时必须考虑的问题。图 3-30 是某位学生根据设计方案 1,利用身边的材料制作的无人船作品。图 3-30 用塑料瓶、冰棍棒制作的船体和遥控装置1.除了案例给出的用塑料瓶和冰棍棒做船体,还有哪些材料可用来制作船体?2.无人船航行过程中,难免会有水溅湿电子器件的情况,该如何避免??思考与讨论?活 动6.7 完成无人船模型的制作并进行优化。(1)根据自己的详细设计方案搭建无人船原型,并总结搭建过程中遇到
159、的问题。(2)将程序分解为小的功能模块,绘制每个模块的核心示意图并编写相应的程序。(3)将完成的无人船模型放入水中试航,测试作品的效果。为无人船拍摄照片或视频,将其与程序及设计文件等一起分享到校园开源社区中。打开配套资源,查看范例无人船船体的制作过程。数字化学习83开源硬件项目设计知识链接动力器件的供电与控制方式开源硬件中,动力器件作为执行装置的一种,与其他器件(如蜂鸣器、LCD 等)相比有一个显著的区别,即它需要较大且稳定的工作电流。以 Arduino 开发板为例,由于板载引脚所能提供的电流很小,一般无法让动力器件维持在稳定的工作状态,因此需要通过相关技术手段加以解决。蜂鸣器等供电与控制方式
160、如图 3-31 所示。图 3-31 蜂鸣器等供电与控制方式 图 3-32 电机供电与控制方式图 3-33 舵机供电与控制方式以动力器件中常用的电机为例,一般会采用添加电机驱动模块的方式来给电机提供稳定的电流和合适的电压,此时微控制器只能通过电机驱动模块来间接控制电机的工作状态,如图 3-32 所示。在设计连线图时要确保微控制器的地线与电机驱动模块的地线相连,使它们的参考电平相同,这样电机驱动模块才能够识别控制信号。舵机是另一种常用的动力器件。不同型号的舵机,对电压和电流的要求也不同,一般需要添加直流变压模块等器件来为舵机提供合适的电压和稳定的电流,而微控制器可以通过引脚直接控制舵机的工作状态,
161、其供电与控制方式如图 3-33 所示。84第三单元 开源硬件项目设计与开发要想让板的下端与超声波传感器的距离稳定在 10cm,该如何控制呢?如果简单地以10cm 为阈值决定是否启动风扇,并不能令系统达到稳定的状态,因为一旦到达阈值,电机会完全停止,所以只能是让板不停地来回摆动。显然,以 10cm 为阈值,风扇吹出的风力(假设风扇功率足够大)与重物到超声波传感器的距离成比例(P 控制),距离越远,风力越大;距离越近,风力越小。当距离值与 10cm 阈值之间的差值足够小,以至于比例控制不能精准调节时,则需要用到时间积累偏差(I 控制)。将第一次循环测到的偏差加上第二次循环测到的偏差,不断重复此过程
162、,直至差值为零。偏差值P 控制I 控制时间图 3-35 P 和 I 控制图以上系统中只用到了 P 和 I 控制。P 和 I 控制如图 3-35 所示。D 用于修正突变或过冲,即短时间内偏差值发生的较大变化。大多数系统都能接受过冲,例如小车,过冲时转弯的幅度大些,很快能扭转过来。但是,某些需要精确控制的情况,如溶液浓度或鱼缸温度不能接受过冲的出现,此时需要使用到 D。实际应用中,D 用得比较少,多数情况下 P 和 I 就足够了。自动控制自动控制是在人工控制的基础上发展起来的,它是在系统设备上配置一些自动控制的装置,对生产或运行过程中重要的变量进行控制,使得系统能够自动地维持预定运行状态。为了实现
163、自动控制,需要让控制系统的输出数据与参考输入数据进行比较,随后系统利用差值进行自身调节,这一过程通常会用 PID(Proportion Integration Differentiation)控制器来完成。PID 是一种经典的闭环控制理论,其中 P 代表“比例控制”,I 代表“积分控制”,D 代表“微分控制”。PID 能够让一个系统(一辆车、一架飞机或一个机器人等)快速地达到某个设定的状态(如 0.5m/s 的速度、3m 的悬停高度等)。观察图 3-34 所示的一个自动控制系统,一块板架在一个支架上,下端附有一个重物。让风扇的风吹向板的上端,让板的下端靠近超声波传感器。图 3-34 一个自动控
164、制系统电机10cm超声波传感器电机驱动模块UNO 板板支架重物85开源硬件项目设计开环控制和闭环控制图 3-36 是一辆使用开源硬件搭建的平衡车,它在运行过程中需要自动(而非人为)保持自身的平衡不倒下。这个过程使用了一种叫作闭环控制的控制方法。目前市面上已有大量的平衡车产品,如图 3-37 所示。拓展阅读图 3-36 开源平衡车图 3-38 闭环控制示意图图 3-39 开环控制示意图图 3-37 平衡车产品闭环控制是根据控制对象输出反馈来进行校正的控制方式,它是在测量出实际与计划发生偏差时,按定额或标准来进行纠正的。与之相对的是开环控制。图 3-38 和 3-39 分别是闭环和开环的控制示意图
165、。本项目设计方案 1 的无人船是开环控制,控制信息是单向输出的,不存在反馈信息回传;而平衡车需要把输出的控制信息传回到输入端,结合收集到的偏差信息(如车要倒了)重新计算并生成控制指令发送出去,这样形成一个闭环控制,达到让小车保持实时平衡的目的。86第三单元 开源硬件项目设计与开发一、项目任务生活中,人们网购的无论是日常用品,还是学习材料等物品,物流服务都能将它们快捷地送达。然而,难免会遇到快递员送货上门,主人不在家的情况。能否利用开源硬件设计制作一个互联网远程快递收件盒,将其放在自己的家门口,实现远程收取快递的功能,从而解决收快递难的问题?二、项目指引1.小组头脑风暴,提出作品的应用功能,去除
166、不明确或不必要的功能,将确定的核心功能以恰当的方式描述出来。2.根据核心功能,设计基于开源硬件的信息系统,形成作品的初步设计方案,并明确各组成模块及数据在模块间的流向。3.细化初步设计的各个模块,然后据此选择合适的器件并开展可行性验证实验,最终形成详细设计方案。在这个过程中,可能会出现反复调试的情况,若有必要,可以考虑修改或调整设计方案。4.根据详细设计方案,搭建远程快递收件盒原型,编写程序来实现其功能。5.原型实现预设的功能后,尝试给作品设计外观,实现其产品化。这个过程中需要考虑机械组件如何与电控部分结合。三、交流评价与反思每个小组派出代表,用自己熟悉的信息表达工具展示作品设计制作的过程(包
167、括设计文件和程序等)。仔细观看其他组作品展示的过程,听取他人对自己小组作品的意见或建议,然后据此进一步优化作品。单元挑战 设计制作远程快递收件盒我们小组遇到的问题:采用的解决方案:87开源硬件项目设计一、主要内容梳理二、单元评价单元小结评价内容达成情况能够充分利用数学、科学、技术等学科知识来支撑智能园艺装置和无人船模型的设计与开发(A)能够通过数字化学习,分析园艺监测和无人船的特点,设计基于开源硬件的信息系统方案(A、T、R)能够根据设计方案选择恰当的开源硬件并验证设计的可行性(T、I)能够根据需要选择恰当的无线数据传输方法(T)能够根据智能园艺装置和无人船模型的设计方案制作原型并实现数据的输
168、入、处理及输出(T、I)能根据需要设计数据驱动电机和舵机执行装置的方案(T、I、R)能利用编程语言实现外部数据的输入与处理,将处理后的数据用于驱动执行装置的运行(T)了解开源硬件信息系统自动控制的原理(A、I)能够与同伴交流分享学习资源,协作完成设计与开发,践行开源知识分享的精神(I、R)说明:A信息意识,T计算思维,I数字化学习与创新,R信息社会责任88 附 录部分名词术语中英文对照(以汉字拼音字母次序为序)比例积分微分 Proportion Integration Differentiation,PID传感器 sensor串行外围接口 Serial Peripheral Interface
169、,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两线式串行总线 Inter-Integrated Circuit,I2C脉冲宽度调制 Pulse-Width Modulation,PWM射频识别 Ra
170、dio 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中断 interrupt89开源硬件项目设计普通高中教科书上 海 科 技 教 育 出 版 社选择性必修 6信息技术信息技术普通
171、高中教科书选择性必修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元批准文号:湘发改价费2017343号举报电话:12315ISBN 978-7-5428-7415-39 787542 874153此书如有印、装质量问题,请向印厂调换印厂地址:长沙黄花印刷工业园三号电话:0731-82755298此书如有印、装质量问题,请向印厂调换印厂地址:长沙黄花印刷工业园三号电话:0731-82755298ISBN 978-7-5428-7415-39 787542 874153此书如有印、装质量问题,请向印厂调换印厂地址:长沙黄花印刷工业园三号电话:0731-82755298