1、普 通 高 中 教 科 书选择性必修信息技术普通高中教科书信息技术6开源硬件项目设计Kaiyuan Yingjian Xiangmu Sheji选择性必修 6开源硬件项目设计广东教育出版社广东教育出版社批准文号:粤发改价格2017434号 举报电话:12315定价:10.86元ook2020信息技术选择性必修1-6封面.indd 62020/12/3 下午3:55信息技术广东教育出版社普 通 高 中 教 科 书徐福荫 主编广州开源硬件项目设计Kaiyuan Yingjian Xiangmu Sheji6选择性必修 ook2020信息技术-8扉页.indd 82020/5/28 下午2:5222
2、前言 图书在版编目(CIP)数据 信息技术选择性必修6:开源硬件项目设计/徐福荫主编广州:广东教育出版社,2019.12(2021.1重印)普通高中教科书 ISBN 978-7-5548-3033-8 .信.徐.计算机课高中教材.G634.671 中国版本图书馆CIP数据核字(2019)第202802号 编写单位 广东教育出版社 主 编 徐福荫 副 主 编 朱光明 黄国洪 本册主编 龙丽嫦 胡永跃 核心编写人员(以姓氏笔画为序)张 封 高伟光 梁志成 董 宇 谭 琦 责任编辑 李杰静 责任技编 杨启承 陈 瑾 装帧设计 何 维信息技术 选择性必修6 开源硬件项目设计XINXI JISHU XU
3、ANZEXING BIXIU 6 KAIYUAN YINGJIAN XIANGMU SHEJI广 东 教 育 出 版 社 出 版(广州市环市东路472号12-15楼)邮政编码:510075网址:http:/广东新华发行集团股份有限公司发行广东新华印刷有限公司南海分公司印刷(佛山市南海区盐步河东中心路)890毫米1240毫米 16开本 9.25印张 185 000字2019年12月第1版 2021年1月第3次印刷ISBN 978-7-5548-3033-8定价:10.86元批准文号:粤发改价格2017434号 举报电话:12315著作权所有请勿擅用本书制作各类出版物违者必究如有印装质量或内容质量
4、问题,请与我社联系。质量监督电话:020-87613102 邮箱:gjs-购书咨询电话:020-8777243821X1359.indd 22021/3/11 11:42:011 1前 言信息技术作为当今先进生产力的代表,已经成为我国经济发展的重要支柱和网络强国的战略支撑。信息技术涵盖了获取、表示、传输、存储和加工信息在内的各种技术。自电子计算机问世以来,信息技术沿着以计算机为核心、到以互联网为核心、再到以数据为核心的发展脉络,深刻影响着社会的经济结构和生产方式,加快了全球范围内的知识更新和技术创新,推动了社会信息化、智能化的建设与发展,催生出现实空间与虚拟空间并存的信息社会,并逐步构建出智慧
5、社会。基于开源硬件的项目设计与开发有利于激发同学们创新的兴趣,培养同学们动手实践的能力,同时也是在信息技术课程中实现STEAM(科学、技术、工程、人文艺术与数学)教育的理想方法。本教科书是针对同学们个性化发展需要,按照开源硬件项目设计流程而设置的选择性必修模块。通过本教科书的学习,同学们能搜索并利用开源硬件及相关资料,体验作品的创意、设计、制作、测试、运行的完整过程,初步形成以信息技术学科方法观察事物和问题求解的能力,提升计算思维与创新能力。本教科书由“开源硬件的特征”“开源硬件项目流程”“基于开源硬件的作品设计与制作”三部分内容构成,围绕信息技术学科核心素养设计了“体验Arduino开发平台
6、”“基于开源硬件的感应灯开发规划”“基于开源硬件的感应灯制作”“基于开源硬件的教室空气质量监测仪开发”“教室空气质量监测仪的开源许可证与知识分享”项目范例。教师围绕“情境主题规划探究实施成果评价”的项目范例开展教学活动,帮助同学们掌握本教科书的基础知识、方法与技能,增强信息意识,发展计算思维,提高数字化学习与创新能力,树立正确的信息社会价值观和责任感,从而促进同学们的信息素养提升。本教科书要求同学们对现实世界中的真实性问题进行自主、协作、探究学习。同学们围绕“项目选题项目规划方案交流探究活动项目实施成果交流活动评价”的项目学习主线开展学习活动,体验“做中学、21X1359.indd 12021
7、/3/11 11:42:0222前言学中创、创中乐”的项目学习理念和“从实践入手、先学先教、先练后讲”的项目学习策略,将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,从而促进信息意识、计算思维、数字化学习与创新、信息社会责任的信息技术学科核心素养达成。本教科书设置了“项目范例”“项目选题”“项目规划”“方案交流”“探究活动”“项目实施”“成果交流”“活动评价”等学习栏目,指导同学们开展项目学习活动。其中,“项目范例”是教师通过“情境”“主题”“规划”“探究”“实施”“成果”“评价”等活动,引导同学们了解开展项目学习活动的全过程;“项目选题”是同学们从真实世界选择自己
8、感兴趣的项目主题;“项目规划”是同学们根据项目选题,制订自己的项目方案;“方案交流”是同学们展示交流自己设计的项目方案,师生共同探究、完善其方案;“探究活动”是同学们通过“问题”“观察”“分析”“查阅”“阅读”“思考”“交流”“实践”“实验”“调查”“讨论”“拓展”“体验”等活动,获取知识和技能的过程;“项目实施”是同学们运用在项目学习过程中所获得的知识和技能来完成项目方案;“成果交流”是教师组织同学们展示交流项目成果,共享创造、分享快乐;“活动评价”是教师组织同学们开展项目评价活动。本教科书各章首页的导言,叙述了本章的学习目的与方式、学习目标与内容,让同学们对整章有个总体认识。每章设置了“本
9、章扼要回顾”,通过知识结构图把每章的主要内容及它们之间的关系描述出来,这有助于同学们建立自己的知识结构体系。每章结尾的“本章学业评价”设计了基于学业要求的测试题,并通过本章的项目活动评价,让同学们综合评价自己在信息技术知识与技能、解决实际问题的过程与方法,以及相关情感态度与价值观的形成等方面,是否达到了本章的学习目标。此外,本教科书为同学们提供了配套学习资源包,里面含有拓展阅读资料、开源硬件编程软件,以及实验案例的源代码等,为同学们开展项目实验的准备和实验过程提供帮助。当然,同学们还可以自己收集素材,让自己的项目学习作品更有特色。21X1359.indd 22021/3/11 11:42:03
10、1 1目录目 录目 录CONTENTS 第一章 认识开源硬件项目 1项目范例 体验Arduino开发平台21.1 开源硬件的特征及发展历程 4111 开源硬件 5112 开源硬件的特征 6113 开源硬件的发展历程 81.2 利用开源硬件进行创新 9121 开源硬件的设计和开发创新 9122 开源硬件的应用 9123 开源硬件对信息技术创新的意义121.3 开源硬件系统的组成及开发环境13131 开源硬件项目13132 开源硬件系统的一般组成14133 开源硬件项目的开发平台15 第二章 开源硬件项目的开发流程与方案设计 33项目范例 基于开源硬件的感应灯开发规划342.1 开源硬件项目开发的
11、基本流程36211 创意38121X1359.indd 12021/3/11 11:42:0522目录212 设计38213 制作39214 测试39215 运行392.2 开源硬件项目开发的创意策划40221 项目选题的策划40222 项目构思的创意策划412.3 开源硬件项目开发的方案设计47231 项目功能需求分析47232 项目功能组件设计48233 项目元器件选型50234 项目设计图样绘制52235 项目技术方案制订55 第三章 开源硬件项目的制作 59项目范例 基于开源硬件的感应灯制作 603.1 项目作品的硬件搭建63311 硬件搭建的器材63312 硬件搭建的步骤67313
12、硬件搭建的安全防护683.2 项目作品的程序设计69321 用图形化编程工具编程69322 用文本代码编程工具编程703.3 项目作品的功能测试与运行74331 项目作品的功能测试74332 项目作品的系统调试74333 项目作品的运行7621X1359.indd 22021/3/11 11:42:063 3目录 第四章 开源硬件项目输入输出组件及综合应用项目开发 79项目范例 基于开源硬件的教室空气质量监测仪开发804.1 开发板的I/O信号控制82411 开发板的I/O信号类型82412 开发板的数字和模拟引脚83413 开发板信号处理的程序函数83414 开发板串口使用854.2 开源硬
13、件项目的输入组件88421 传感器88422 环境检测类传感器常见模块90423 物理测量类传感器常见模块944.3 开源硬件项目的输出组件98431 执行器组件常见模块98432 显示组件常见模块1024.4 综合应用项目开发106441 教室空气质量监测仪项目的创意策划106442 教室空气质量监测仪项目的技术方案设计108443 教室空气质量监测仪项目的程序设计114444 教室空气质量监测仪项目的调试和运行116 第五章 知识分享与知识产权 121项目范例 教室空气质量监测仪的开源许可证与知识分享1225.1 知识分享与开源精神124511 知识分享背景下的开源精神125512 互联网
14、常用知识分享平台12721X1359.indd 32021/3/11 11:42:0644目录5.2 开放源代码与知识产权129521 知识产权及其历史130522 常见的开源许可证131附录1 部分术语、缩略语中英文对照表 138附录2 项目活动评价表 13921X1359.indd 42021/3/11 11:42:081 1随着信息技术的蓬勃发展和国内“大众创业,万众创新”热潮的兴起,创客(Maker)、创客空间等概念得以迅速传播,引发了社会大众对创客的广泛关注。开源硬件现已成为创客们的常用工具,它不仅能被艺术家、设计师、工程师等专业人员用于艺术创作、科技创新,而且能使普通的业余爱好者自
15、己动手将创意转化为实物作品或产品,体验或感受开源硬件的魅力。本章将通过“体验开源硬件开发平台”项目,进行自主、协作、探究学习,让同学们认识开源硬件的特征与发展,理解利用开源硬件进行信息技术创新的意义,从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进信息技术学科核心素养达成,完成项目学习目标。开源硬件的特征及发展历程 利用开源硬件进行创新 开源硬件系统的组成及开发环境第一章认识开源硬件项目21X1359.indd 12021/3/11 11:42:1022第一章 认识开源硬件项目体验Arduino开发平台项目范例情 境随着全球创客运动的兴起,国内“大众创业,万
16、众创新”热潮风起云涌,创客创业的活力不断被激发,“互联网+创意智造”成为小微企业产品研发的创新路径,也为中国成长为创造大国提供动力引擎。开源硬件是创客运动的宠儿,其中Arduino是典型代表之一。基于Arduino开发平台,即使是非电子专业人群,也可以开发制作许多有趣的、互动的项目,为生活带来更好的创意体验,解决更多的问题。究竟什么是开源硬件和开源硬件开发平台?它们与创客是什么关系?学习利用开源硬件进行项目开发对信息技术应用创新有什么意义?主 题体验Arduino开发平台规 划根据项目范例的主题,在小组中组织讨论,利用思维导图工具,制订项目学习规划,如图1-1所示。图1-1“体验Arduino
17、开发平台”项目规划21X1359.indd 22021/3/11 11:42:133 3体验Arduino开发平台探 究根据项目学习规划的安排,通过网络资料搜索、文献阅读和动手探究,开展“体验Arduino开发平台”项目学习探究活动,如表1-1所示。表1-1“体验Arduino开发平台”项目学习探究活动探究活动学习内容知识技能认识Arduino开发平台开源和开源软件的含义。开源硬件的概念与特征。了解开源硬件发展历程。常用的开源硬件。认识开源硬件的特征和发展。了解开源硬件的发展历程。知道常用开源硬件的名称、功能和特征。开源硬件的设计和开发创新。开源硬件的应用领域。利用开源硬件进行信息技术创新的意
18、义。理解利用开源硬件进行信息技术创新的意义。体验基于Arduino开发平台的项目开源硬件项目的组成。开源硬件项目的开发平台。知道利用开源硬件进行项目开发的项目组成。实 施实施项目学习各项探究活动,进一步认识开源硬件的特征和发展,理解利用开源硬件进行信息技术创新的意义。成 果在小组开展项目范例学习过程中,利用思维导图工具梳理小组成员在“头脑风暴”活动中的观点,建立观点结构图,运用多媒体创作工具(如演示文稿、在线编辑工具等),综合加工和表达,形成项目范例可视化学习成果,并通过各种分享平台发布,共享创造、分享快乐。例如,运用在线编辑工具制作的“体验Arduino开发平台”可视化报告,可以在教科书配套
19、学习资源包中查看,其目录截图如图1-2所示。图1-2“体验Arduino开发平台”可视化报告目录截图21X1359.indd 32021/3/11 11:42:1444第一章 认识开源硬件项目评 价根据教科书附录2的“项目活动评价表”,对项目范例的学习过程和学习成果在小组或班级上进行交流,开展学习活动评价。项目选题同学们以36人组成一个小组,选择下面一个参考主题,或者自拟一个感兴趣的主题,开展项目学习。1体验Arduino的其他型号开发板与软件2体验micro:bit开发平台3体验Raspberry Pi(树莓派)开发平台项目规划各小组根据项目选题,参照项目范例的样式,利用思维导图工具,制订相
20、应的项目方案。方案交流各小组将完成的方案在全班进行展示交流,师生共同探讨、完善相应的项目方案。1.1 开源硬件的特征及发展历程2015年3月,政府工作报告首次将“创客”写入,并提出推进“大众创业,万众创新”,强调“让人们在创造财富的过程中,更好地实现精神追求和自身价值”,一时间激发了人们创业、创新的热情。2015年6月,深圳市举办首届国际创客周活动,聚焦智能硬件和“互联网+”,促进国内外创客文化交流(图1-3)。富有创新、创造精神的创客,与“大众创业,万众创新”联系在了一起,引发了人们的广泛关注。自此,我国跟随全球创客运动的脚步,掀起了创图1-3 首届国际创客周活动展21X1359.indd
21、42021/3/11 11:42:155 51.1 开源硬件的特征及发展历程客热潮。实际上,不论是创业还是创新,不论是成为电子设计爱好者还是成为创客,都与开源硬件密不可分,在一定程度上都得益、依赖于开源硬件及其平台。1.1.1 开源硬件1开源与开源软件在1998年OSI(Open Source Initiative,开放源代码促进会)成立时,“开源”一词被正式使用,旨在推动开源软件的发展。所谓开源,是指开放源代码(open-source),是一种软件公布方式。源代码(source)是可供人阅读的计算机指令文本,是软件产品最直接、最完整的技术描述。商业软件公司通常采取申请版权或者商业加密的方式对
22、软件源代码实施严格保护,以防止其技术思想被窃取,从而保证软件的销售盈利。开放源代码软件,即开源软件,是指源代码完全公开,可自由分发,任何人都可免费获取的软件。开源软件由世界各地的志愿者通过网络合作的方式完成。开源软件独特的研发和发布方式,使它取得了令人瞩目的成绩。今天,开源软件在全球已被广泛应用于各行各业,改变着世界软件业的发展轨迹。例如,操作系统类开源软件有Linux、Android(安卓系统)等,应用类开源软件有MySQL、PHP、Python、Firefox等。2开源硬件开源硬件在开源软件的基础上定义,指源代码开放的硬件(设备、机器或者其他实物),允许他人重新制造、修改、分发等。开源硬件
23、的源代码,指开源硬件的设计,包括项目组成、概述、原始设计文件、辅助设计文件、物料清单、软件、照片和解释说明等。开源硬件的核心体现在电路原理图、物料清单、PCB(电路板)图等。例如,Arduino开发板、micro:bit开发板等。硬件与软件的不同之处在于硬件资源始终致力于创造实物产品,3D打印、无人驾驶飞机等都是利用开源硬件的例子。目前,比较流行的开源硬件有Arduino、Raspberry Pi、micro:bit等。其中,Arduino是开源硬件界第一个获得大规模成功的项目,且产生了大量的衍生产品。近年来,我国自主研发的专门用于教育的开源硬件也相继投入使用。得益于创客运动,开源精神和开源文
24、化从电子爱好者、开源硬件社区开始,逐步走向大众,使更多人能通过各种开源分享,将创意转化为现实,进而改变世界。探究活动讨 论上网搜索或到图书馆查阅资料,与同学讨论开源软件、开源硬件、开源运动的含义。21X1359.indd 52021/3/11 11:42:1566第一章 认识开源硬件项目阅 读创客与创客运动“创客”中的“创”是指创造,“客”是指从事某种活动的人。对于创客的定义,目前没有明确的界定,狭义上是指那些酷爱科技、热衷实践、乐于分享,努力把各种创意转变为现实的人;广义上是指有创意,并且能够付诸实践进行创新的人。创客们结合开源硬件和互联网,将各种创意变为各式各样的产品,如电子服装、健康手环
25、、智能手表、食物烹饪器等。创客运动,可以理解为“互联网+DIY”,即人人都可以像科学家、发明家一样,利用一切资源,将创意实现,并通过互联网平台快速分享给全世界。创客运动起源于美国,近年风卷全世界,在中国的兴起时间虽短却发展迅猛。创客空间,是创客开展制作、活动、交流、合作的工作空间,配备有各种资源工具,拥有运营团队等。创客空间不仅为创客们提供了各种设计、开发及测试创意产品的设备和资源,更为创客们提供了各种提升创客能力的讲座、培训和课程。创客空间,是学习的空间,是思维碰撞的空间,更是创新和创造的空间。查 阅上网搜索或到图书馆查阅资料,进一步了解国内外创客、创客空间、创客运动的情况及创客给社会带来的
26、影响。1.1.2 开源硬件的特征开源硬件是开源文化的重要组成部分,具有开放性、成本低和标准化三个特征。1开放性开源硬件最典型的特征是开放性,且重视分享、透明和工作的传承。开发者通过公开硬件设计的所有信息,使得他人能够在此基础上使用部分或全部硬件的设计方案,进行二次开发。标记为开源硬件的,无论是授权完全开源或部分开源一定要明确必须做到的和可选做的事项。(1)必须做到的事项:允许任何人研究、修改、发布、制作和销售此硬件。提供可公开访问的设计文件和文档(源文件),格式容易获得。明确设计的哪部分(如果不是全部)是许可发布的。不要暗示衍生品依然要由原设计师制造、销售、保修或其他形式的认可。未经许可不得使
27、用其他公司的商标。不可公开销售非商业性的或无衍生品修改的开源许可的硬件。21X1359.indd 62021/3/11 11:42:157 71.1 开源硬件的特征及发展历程(2)可选做的事项:要求给出版权归属。根据开源硬件的定义使用开源硬件标志来标注硬件。要求衍生的作品采用与原设计不同的名称或版本号。硬件可以直接复制或在其基础上创作衍生品。衍生品需要兼容的开源硬件许可证。2成本低由于硬件设计的修改成本比较高,开放开源硬件的硬件设计信息可以使开发成本、开发风险大为降低,使学习成本以及利用它进行应用项目设计的实验成本也一起降低,从而能够被绝大多数人所接受。3标准化标准化是实现进一步开放性目标的重
28、要手段。开源硬件设计实现了软件和硬件的标准化。软件标准化包括软件接口、编程环境、库文件、引导程序和编程工具等方面的标准。硬件标准化包括电子元器件、机械硬件、物理通信、硬件界面、模块化设计等方面的标准。当开源硬件产品与其他硬件产品通信时,一般采用USB、蓝牙或Wi-Fi等主流标准协议。所有这些标准,都利于开源硬件更容易被修改或重新设计。开源硬件的发展有力地促进了接口技术的标准化和开发流程的标准化。如图1-4所示,各种不同标准的连接插头,彼此不能共用,给人们造成极大不便,从而形象地表达开源硬件标准化的重要性。阅 读Arduino是全球流行的、热门的开源硬件平台之一。Arduino创始团队中有一位成
29、员是意大利一所高科技设计学校的教师,他的学生经常抱怨找不到既便宜又好用的微控制器。2005年,这位教师与学校的一位工程师访问学者决定自己设计电路板,并为电路板设计编程语言。电路板完工后,他们把设计图放到网上。然而,版权法虽然可以监管开源软件,但却很难用于监管硬件上。为了保持设计的开放源代码理念,他们决定采用Creative 图1-4 各种不同标准的连接插头21X1359.indd 72021/3/11 11:42:1588第一章 认识开源硬件项目Commons(知识共享,简称CC)授权方式公开硬件设计图。在这样的授权下,任何人都可以生产Arduino电路板的复制品,甚至还能重新设计和销售原设计
30、的复制品。人们不需要支付任何费用,甚至不用取得Arduino团队的许可。然而,如果重新发布了引用设计,就必须声明原始Arduino团队的贡献。如果修改了电路板,则最新设计必须使用相同或类似的CC授权方式,以保证新版本的Arduino电路板也会一样是自由和开放的。唯一被保留的只有Arduino这个名字,在没有官方授权的情况下不能使用它。短短几年,Arduino在全球积累了大量用户,推动了开源硬件、创客运动,甚至推动了硬件创业领域的发展。如今,越来越多的芯片厂商和开发公司都宣布自己的硬件支持Arduino。1.1.3 开源硬件的发展历程开源软件的历史比开源硬件早二三十年,开源硬件的历史紧紧跟着开源
31、软件的历史发展足迹。1开源硬件的产生1997年推出的“开源硬件认证计划”,允许硬件制造商对硬件进行认证,要求凡是获得认证的硬件设备,都要承诺对外公开其驱动程序接口的编程文档。这样,供应商就可在获得认证的设备包装上添加开源硬件标志,并在广告中指出他们的设备是经过认证的。购买了认证设备的用户即便是遇到操作系统变更或制造商倒闭,仍可以由第三方为他们的设备编写新的软件。这是开源原则首次应用于硬件。1998年,开源硬件的概念纷纷被提出。例如,有人推出“开放硬件规范项目”;有人表示想开办企业将开源软件的原则应用到硬件设计和开发中;更有人推出了开放设计电路网站,旨在通过合作的方式设计出低成本的开放设计电路。
32、这些雏形概念的出现有力地推动了开源硬件运动的发展,但大多数项目尝试在一两年内就逐渐销声匿迹了。2开源硬件的发展2005年前后,由于OpenCores、RepRap、Arduino等几个主要的开源硬件项目的出现,开源硬件再次成为焦点。2007年,TAPR创建了第一个硬件许可证,也是第一个针对硬件的开源许可证。2009年,这些开源硬件推动者组建了“开源硬件设计联盟”,每年召开一次开源硬件峰会。2011年,开源硬件协会(OSHWA)正式创立。这是一个教育型非营利组织。开源硬件协会建设有开源硬件社区(标识如图1-5所示),不定期举办会议,开展有社会价值的开源硬件使用场景教育活动,服务社群,帮助开展ST
33、EM教育,鼓励开源硬件项目向教育和经济等领域开放。开源硬件协会进一步明确了开源硬件的1.0定义。图1-5 开源硬件社区标识21X1359.indd 82021/3/11 11:42:159 91.2 利用开源硬件进行创新查 阅围绕“开源硬件运动”或“开源硬件历史”搜索查阅相关资料,按照以下要求,自行设计表格,记录、分析其特点及发展历程。(1)要对资料进行分析,甄别信息来源的可信性、权威性。(2)要对资料进行格式过滤,筛选和加工查阅到的信息。交 流各小组以“认识开源硬件”为主题在班级或在学校网络学习空间进行分享交流。1.2 利用开源硬件进行创新在当今智能设备和移动互联网浪潮下,开源硬件技术的兴起
34、,有效地降低了硬件技术的开发门槛。随着开源硬件的广泛应用,一大批相关企业和创客不断产生,他们怀着新颖的想法,自己动手创造,进行各种各样的自主创新活动。1.2.1 开源硬件的设计和开发创新开源硬件倡导开放、分享,按一定授权方式将资料公开在网络社区,鼓励读者修改开源硬件及其项目,促进该硬件或其项目不断修正、迭代发展,并制作出衍生产品。基于开源硬件的定义,开源硬件授予了使用者复制的权利。开源硬件衍生品的项目,特别是3D打印领域和Arduino社区中的项目,其设计制作、变化一般可分为四类:功能改变;设备形式改变;成本改变;为更好地设计与制造改变,使产品的零部件更易制造或供应。所有这些变化,都是促进开源
35、硬件设计与开发本身的创新发展。1.2.2 开源硬件的应用开源硬件的发展,为制造业、教育、医疗、农业等各行各业的发展和社会服务带来了极大的便利,使得人们的学习更个性、工作更便捷、生活更美好。1开源硬件在制造业中的应用开源硬件已逐渐应用于制造业的设计、生产与产品之中。例如,一款安全高效的开源21X1359.indd 92021/3/11 11:42:151010第一章 认识开源硬件项目激光切割机Lasersaur,可以满足用户对于激光切割的任何需求,而无须掌握任何运行、维护和更改的专业知识,如图1-6所示。Blackfoot则是另一款基于开源硬件的数控机床,可以提供免费、低成本的自动化制造解决方案
36、,如图1-7所示。对于全球首款开源DIY汽车,用户只需购买基础零件,并下载组装指南,就可以像搭积木那样自行组装汽车,组装车最高时速可达85 km/h。如图1-8所示为某款开源DIY汽车展示图。2开源硬件在教育中的应用开源硬件近年也广泛运用在教育行业中。随着开源硬件的发展以及各种相关论坛的兴起,教师可以便捷地获得大量的开源工具用于教学;学校的课程学习可以方便地运用各种各样的开源硬件开发板,帮助同学们感性地认识和动手实践;教与学的方式也更加灵活多样。此外,随着硬件价格的下降以及更多开源软件的推广,学习的门槛将会进一步降低,未来将会有更多人利用开源硬件进行学习。3开源硬件在医疗中的应用开源硬件在医疗
37、设施领域也是大有可为。例如,基于开源硬件的开放性脑机界面(BCI)图1-6 开源激光切割机Lasersaur 图1-7 开源数控机床Blackfoot图1-8 某款开源DIY汽车展示图21X1359.indd 102021/3/11 11:42:1611 111.2 利用开源硬件进行创新(图1-9),涵盖了多种医疗技术,包括功能性核磁共振影像、人工耳蜗植入装置、脑电图等。虽然这类医疗应用技术目前仍然十分昂贵,但未来通过硬件资源的开放会变得更加普及,造福全人类。4开源硬件在农业中的应用我们的世界正在经历人口爆炸式的增长,所以很多政府与公司都希望尽量提高农业生产的产量。如图1-10所示的一款开源的
38、自动化精准农业机械FarmBot的外观很像数控铣床和3D打印机,它主要采用X、Y、Z三轴定向,可以装备任何农用设备。另外,通过FarmBot的软件包,用户还可以对农场进行图形化设计,告诉FarmBot应该完成的操作,从而实现犁地和种子播撒等。其实,开源硬件的应用还有很多。当前,开源硬件已经对制造业、教育、医疗、农业等领域产生广泛而深远的影响。图1-9 开放性脑机界面图1-10 自动化标准农业机械FarmBot21X1359.indd 112021/3/11 11:42:161212第一章 认识开源硬件项目调 查查阅资料,举例说明开源硬件对各行各业的影响,填写表1-2。表1-2 开源硬件对各行各
39、业的影响实例开源硬件应用领域开源硬件的影响实例制造业教育医疗农业文化娱乐家居其他结论:1.2.3 开源硬件对信息技术创新的意义开源硬件对信息技术创新以及人才培养等都具有明显的积极意义。1降低项目设计的技术门槛,促进了人们参与的广度以Arduino为例,其具有良好的可扩展性,可以根据项目需求,像搭积木一样接入扩展模块。由于Arduino相应的软件系统也是开源的编程环境,且简单易学,利于更多人参与和创造。2公开且容易获得的技术资源,促进了人们参与的深度开源硬件开发平台,如Arduino拥有众多的电子设计爱好者,其专业的开源硬件协会组织和社区网站提供了相关的技术文档、扩展库、系统库等资料,便于人们获
40、取、学习。3动手做项目的学习方式,促进了人们参与的效度基于开源硬件开发平台的研发,使得学习者从一个完整项目设计的角度去理解所学的知识体系,从而加深和促进对知识结构的理解,并通过“边实践、边探究”的项目学习模式,激发学习者的动手能力和创造能力。4开源降低了开发风险和项目成本,提升了人们创新的意愿与可行性使用开源硬件进行项目设计,可以更高效地对产品进行开发、完善和迭代,不仅减少了重复开发,降低了试错风险和成本,更缩短了产品原型的开发周期,提升了人们创新的意愿。开源对创新具有积极的意义。但是,开源并不反对知识产权,也不代表作者放弃了知识产权,也并不意味着可以由他人进行创意剽窃和肆无忌惮地盗版,开源也
41、要尊重和保护21X1359.indd 122021/3/11 11:42:1613 131.3 开源硬件系统的组成及开发环境知识产权,遵循开源许可协议,以保障开源运动的健康发展。讨 论下面列出了三个关于“创客与创新”的思考问题,以小组为单位选择其中一个问题,搜索、查阅资料,然后形成观点,并在班级或在学校网络学习空间进行讨论交流。(1)创意、创客与创业有什么关系?(2)为什么说创客是跟开源硬件绑在一起的?(3)为什么说开源有利于创新?项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,开展开源硬件开发板探究活动。1了解常用开源硬件和本组所选开源硬件开发板的名称、外观、控制器芯片型号、输
42、入输出引脚、电源口及工作电压等。2利用本组所选开源硬件开发板进行实验电路连接、交互控制功能体验及操作。1.3 开源硬件系统的组成及开发环境1.3.1 开源硬件项目开源硬件项目,既指硬件设计本身,也常泛指利用开源硬件进行开发制作的项目,即指由开源硬件系统与制作材料搭建而成的物理运算装置。在本教科书中,开源硬件项目的含义主要指后者,且项目装置主要介绍开源硬件系统部分。创客和电子设计爱好者都可以通过开源社区分享各种开源硬件项目,了解国内乃至世界各地充满创意的、有趣的项目。例如,如图1-11所示是一个可供参图1-11 基于Arduino的互联网花盆21X1359.indd 132021/3/11 11
43、:42:171414第一章 认识开源硬件项目观者参与的基于Arduino的互联网花盆项目,参观者可以为植物提供阳光(控制LED亮度)、空气(控制风扇开关)和水(控制水泵开关)。探究活动查阅上 网 查 阅 A r d u i n o 衍 生 的 各 种 创 意 作 品。例 如,声 光 玩 具,可 搜 索 关 键 词“Arduinotoy”;自动机械化,可搜索关键词“宠物喂食器”;四轴飞行器,可搜索关键词“ArduSat”;3D打印机,可搜索关键词“3D Printer”;等等。1.3.2 开源硬件系统的一般组成开源硬件系统一般由开源硬件开发平台、输入组件和输出组件组成,如图1-12所示。开源硬件
44、开发平台,实质是开源的电子平台,由硬件和软件两部分组成。其中,硬件部分是由微控制器(为单片机)与外围元器件集成的一块电路主板;软件部分是集成开发环境。从利用该硬件进行应用产品开发的角度而言,开源硬件承担了系统的中控、开发平台的作用,因此,亦被称为控制板或开发板。同时,由于开源硬件系统部分是产品实验开发的电子原型,因而开源硬件平台又被称为电子原型平台。“原型”是在新产品开发阶段所制作的模型,用于试验新产品的功能、造型和材料。输入组件是指能将产生的数字信号或模拟信号输入到开发板的元器件,如按钮、光敏传感器等。输出组件是指能输出光、声音、驱动等信号的元器件,如LED、蜂鸣器、电机等。图1-12 开源
45、硬件系统的一般组成21X1359.indd 142021/3/11 11:42:1715 151.3 开源硬件系统的组成及开发环境1.3.3 开源硬件项目的开发平台开源硬件开发平台多种多样,其中Arduino、Raspberry Pi和micro:bit是主流开发平台。与其他电子硬件开发平台相比,Arduino具有价格实惠、尺寸和型号多、易于与其他设备相连、编程简易等优点,广受电子设计爱好者追捧。因此,我们将采用Arduino作为开源硬件开发平台的范例。Arduino开发平台主要包含硬件和软件两大部分。硬件部分是可做电路连接的Arduino电路板,软件部分包括一个编程语言环境和在开发板上运行的
46、程序。1 硬件部分(1)Arduino开发板。以Arduino UNO为例,开发板由一块Atmel AVR单片机、一个晶体振荡器和一个5 V直流电源组成。它可以连接各种输入设备,一般通过传感器传入信息;也可以驱动各类输出设备;还可以做一些物理、化学类的科学实验,快速实现一些简单的创意。Arduino的开发板有多种型号,其中最常用的型号是Arduino UNO,如图1-13所示。如无特殊说明,我们所述的Arduino开发板即指Arduino UNO。就像计算机一样,Arduino也会持续推出新的版本与型号,软件也会更新。Arduino开发板的版本型号很多,每个型号都有不同的名字,例如Arduin
47、o LEONARDO、Arduino UNO、Arduino NANO等。虽然型号不同,但连接方式几乎都一样。开发板上各引脚的含义如表1-3所示。图1-13 Arduino UNO开发板实物图21X1359.indd 152021/3/11 11:42:181616第一章 认识开源硬件项目表1-3 Arduino开发板各引脚说明名称含义名称含义RESET复位IOREF输入输出参考电压,预留SCL时钟线3.3 V3.3 V电压SDA双向数据线5 V5 V电压AREF基准电压输入GND接地或地线013数字输入/输出:0,13/5/6/9/10/11:模拟输出0,255VIN电源输入电压TX串行发送
48、A0A5模拟输入0,1023RX串行接收数字输出0,1调 查上网或到图书馆查阅其他开源项目的工具书,调查了解Arduino开发板连接引脚的使用方法,包括供电电压、数字I/O(输入输出)、模拟输入、GND等。(2)Arduino驱动。Arduino开发板和进行软件开发的计算机连接,一般需要通过USB线连接。当Arduino开发板第一次连接到计算机时,计算机需要安装驱动程序,之后再连接则无须再安装。第一步,安装驱动程序。当Arduino开发板第一次连接到计算机时,计算机会提示“安装驱动程序”。打开计算机“设备管理器”,查找并点击“Arduino Uno”设备进行安装,如图1-14所示。这时,只要按
49、照弹出的安装提示,在Arduino IDE安装目录中的Drivers文件夹中查找驱动程序,就能实现对Arduino驱动程序的安装。驱动安装完毕,以后再将Arduino开发板与图1-14 找到“Arduino Uno”设备21X1359.indd 162021/3/11 11:42:1817 171.3 开源硬件系统的组成及开发环境计算机连接,则不再提示“安装驱动程序”。第二步,分配Arduino开发板的端口号。Arduino开发板与计算机通信是通过串口进行的。因而在第一次安装Arduino设备驱动时,在计算机“设备管理器”的端口一项中会增加一个串口设备,并分配给Arduino开发板一个串口号。
50、例如,在图1-15中,Arduino开发板与计算机通信的串口号为COM4。不同的计算机分配给Arduino开发板的串口号可能各不相同。(3)Arduino扩展板。Arduino开发板上输入、输出和传感器的接口有限,通常需要使用扩展板来增加接口,进而实现特定功能的扩展。Arduino扩展板通常具有和Arduino开发板一样的引脚位置,可以堆叠接插到Arduino上,如图1-16(a)所示,有利于简化在开发板上接插元件的搭建过程,更快速地搭建出项目。Arduino扩展板还可分为传感器扩展板、网络扩展板和原型扩展板等,可以根据需要进行选择。如图1-16(b)所示为原型扩展板与Arduino开发板堆叠
51、。图1-15 Arduino开发板与计算机通信的串口号串口号图1-16(a)原型扩展板图1-16(b)原型扩展板与Arduino开发板堆叠21X1359.indd 172021/3/11 11:42:191818第一章 认识开源硬件项目实 践1登录Arduino官网或开源硬件社区查阅资料,了解和探究Arduino开源的设计资料,比较Arduino各种型号名称、外观、尺寸等参数以及价格,自行设计一个表格,将其资料整理汇总显示在表格上。2观察Arduino UNO开发板的外观、尺寸、芯片、接口、引脚等。3使用USB线将开发板连接到计算机,并安装驱动程序。拓 展1micro:bit是一块高度集成的开
52、发板,搭载有25个可编程LED点阵、两个可编程按键、加速度传感器、磁场传感器、光线传感器、温度传感器、蓝牙、micro USB插口、5个I/O 环供鳄鱼夹和一个4 mm banana plug(香蕉插头)等电子模块,主要用于青少年的编程教育,如图1-17所示。micro:bit功能强大,操作简单,能快速实现开源硬件作品的制作。2树莓派(Raspberry Pi)也是开源硬件开发平台的典型代表,是基于ARM的微型电脑开发板。树莓派以SD卡为硬盘,有两个USB接口和一个网口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,且全部功能整合在一张仅比信用卡稍大的主
53、板上,具备计算机所有基本功能,只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能,如图1-18所示。Raspberry Pi B款只提供电脑板,无硬盘、电源、键盘、机箱或连线。图1-17 micro:bit开发板21X1359.indd 182021/3/11 11:42:1919 191.3 开源硬件系统的组成及开发环境图1-18 树莓派开发板2软件部分对Arduino开发板上的AVR单片机进行编程需要软件,可以用Arduino官方文本编程软件Arduino IDE,也可以用第三方图形化编程软件,ArduBlock和Mixly(米思齐)等。(1)Arduino
54、 IDE。Arduino IDE是一个集成开发环境,包括代码编辑器、编译器、调试器等。用Arduino IDE可以编写有关Arduino开发板的控制程序,可将程序上传到Arduino开发板脱机执行。Arduino IDE的界面如图1-19所示。图1-19 Arduino IDE界面21X1359.indd 192021/3/11 11:42:202020第一章 认识开源硬件项目(2)ArduBlock。ArduBlock是一款可挂靠于Arduino IDE中的图形化编程软件,其可视化和交互性程度高,编程门槛低,适合于初学者。ArduBlock的界面如图1-20所示。图1-20 ArduBloc
55、k界面ArduBlock界面主要分工具区、模块区和编程区三部分。工具区:可实现编程文件的新建、存取和程序上传等功能。模块区:存放实现某种指令或功能的模块区域,具体子模块如表1-4所示。表1-4 ArduBlock模块功能模块类名称功能控制用于控制程序结构,包括循环、判断结构、子程序等子模块。引脚用于控制引脚的输入和输出等,包括数字输入、数字输出、模拟输入和模拟输出、舵机、超声波引脚以及发声函数等子模块。逻辑运算符用于处理逻辑运算,包括大于、等于、不等于、且、或、非、字符串比较等子模块。数学运算用于数字运算,包括加、减、乘、除、取余以及常用数学函数、随机数、映射等子模块。变量/常量用于设置常量和
56、变量,包括数字、字符、逻辑值、变量、逻辑变量、字符串变量等子模块。实用命令一般的实用命令,包括延时、上电运行时间、串口输出、数字映射、I2C读写、红外遥控接收等子模块。教育机器人用于电机等的设置。编程区:是编写图形化程序的区域,可通过拉拽、移动的方式从模块区中选择模块,像搭积木一样对各模块进行嵌合,快速实现程序的编写。21X1359.indd 202021/3/11 11:42:2121 211.3 开源硬件系统的组成及开发环境(3)Mixly。Mixly(米思齐)是一款免费开源的图形化编程软件,支持包括Arduino、micro:bit、ESP32等开发板。Mixly软件具有丰富的传感器模块
57、和第三方库,同时支持用户的定制化开发,方便用户编写各种从简单到复杂的应用程序。Mixly软件可将编写完成的程序直接上载到Arduino开发板。Mixly软件的界面如图1-21所示。图1-21 Mixly软件界面Mixly软件界面主要包括模块区、编程区、代码区和编译区四部分。Mixly软件部分模块功能如表1-5所示。表1-5 Mixly软件部分模块功能模块类名称功能输入/输出用于控制引脚的输入、输出、中断和脉冲长度等,包括数字输入、数字输出、模拟输入、模拟输出、中断控制、脉冲长度等子模块。控制用于控制程序结构,包括初始化、时间延迟、条件执行、循环执行、获取时间、Switch执行等子模块。数学用于
58、数学变换功能,包括数字映射、数字约束、数字运算、取整、三角函数等子模块。文本用于处理字符文本,包括文本链接、文本转数字、数字转文本等子模块。数组便于代码编写时所采用的数组块,包括定义数组、取数组值、改数组值等子模块。逻辑用于处理逻辑运算,包括条件判断、逻辑运算等子模块。串口用于人与计算机交互,具体包括串口通信等子模块。本教科书中的实验及项目将以Mixly图形化编程工具为例编写程序。编译区编程区代码区模块区21X1359.indd 212021/3/11 11:42:212222第一章 认识开源硬件项目在Mixly软件中编写程序的具体操作方法如图1-22所示。图1-22 在Mixly软件中编程的
59、界面(1)编写程序。首先打开模块类,然后单击选择所需代码块,并拖曳到编程区相应位置(当代码块相互靠近时,Mixly软件会自动判断是否相互吸附相嵌),然后根据程序功能需要修改代码块的参数。重复选择和拖曳代码块的步骤,即可完成程序代码的编写。(2)上传程序。完成代码块的程序编写后,按以下步骤将程序上传到开发板:根据所使用的开发板型号选择相应的开发板,如图1-22所示,选择的是“Arduino/Genuino Uno”开发板。选择该开发板被计算机识别后的串口号,如图1-22所示为“COM6”。单击“上传”按钮,Mixly会进行代码编译,并上传到开发板上。当没有出现错误提示,并在编译区出现“上传成功”
60、时,表示程序已成功上传至开发板。实 践1上网下载并安装Arduino IDE。2上网下载并安装Mixly图形化编程工具。3分别打开Mixly程序目录中sample文件夹下的“01闪烁LED”和“08声控灯”程序,观察两个程序中代码块指令结构的异同,并分别尝试将其上传和编译,观察其能否上传成功。21X1359.indd 222021/3/11 11:42:2223 231.3 开源硬件系统的组成及开发环境实 验以小组为单位,完成以下实验。实验一:点亮板载LED1实验目标:编程控制点亮板载LED。2实验问题:如何利用LED的发光原理点亮LED?3实验分析:点亮LED的关键是给LED加上正向电压。常
61、用LED的导通电压约为2 V,一般情况下加上3 V电压即可正常发光,其电流一般在几十毫安左右。4实验器材:Arduino开发板1块、USB连接线1条。5硬件搭建:Arduino开发板上有一个板载灯,内部电路与数字引脚D13相通,并有限流电阻,由芯片驱动。实验要点亮与引脚D13内部连接的LED,编程后将Arduino开发板通过USB线与计算机连接。6编程实现:利用Mixly编写简单指令,就可以简单地设置数字I/O引脚D13的输出电压。例如,图1-23给出了利用Mixly编写的只有一条指令的循环程序,设置了引脚D13为高电平(在Mixly程序中,“管脚”即指引脚)。只要将程序上传到Arduino开
62、发板上,就可使得Arduino开发板上的LED被点亮。同理,要熄灭LED或进行其他控制也可使用类似指令,如设置D13为低电平。7上传测试:用USB线将搭建好硬件电路的Arduino开发板与计算机连接,并在Mixly中选对串口号,然后就可在界面中点击“上传”,将所编写的程序上传到Arduino开发板上。待Mixly提示上传成功后,观察LED是否被点亮。实验二:闪烁外接LED1实验目标:设计和控制外接LED的闪烁。2实验问题:(1)如何通过编程设计控制LED闪烁的效果?(2)如何设置LED闪烁的频率?3实验分析:若要实现LED闪烁,首先必须考虑对LED实施供电(加正向电压,点亮)和断电(撤销供电,
63、熄灭)的操作,然后考虑控制LED闪烁的频率。图1-23“点亮板载LED”程序21X1359.indd 232021/3/11 11:42:222424第一章 认识开源硬件项目将LED与电阻R串联接入Arduino开发板,通过引脚D13给LED供电或断电,可以控制LED的亮、灭,其电路原理图如图1-24所示。其中,R是连接在电源5 V和LED间的限流电阻,电阻值为220。4实验器材:LED1个、Arduino开发板1块、USB连接线1条、220 电阻1个、面包板1块。5硬件搭建:按照图1-24所示的电路原理图进行硬件搭建。搭建硬件时,严禁将LED插在电源5 V和GND引脚之间。6编程实现:(1)
64、点亮或熄灭LED:设置D13为高电平,可点亮LED;如果要使LED熄灭,则设置D13为低电平。(2)延时控制:根据人眼的视觉暂留效应,如果LED亮、灭之间的延迟时间少于10毫秒,则人眼难以分辨出LED的闪烁。因此,设置亮灯延迟和灭灯延迟时间都应为10毫秒以上,一般设置500毫秒或1000毫秒。利用Mixly编写的“闪烁外接LED”程序如图1-25所示。7上传测试:用USB线将搭建好硬件电路的Arduino开发板与计算机连接,并在Mixly中选对串口号,然后点击“上传”将所编写的程序上传到Arduino开发板上。在上传过程中,在Mixly的状态信息栏内会显示上传状态信息,当程序上传完成后图1-2
65、4“闪烁外接LED”电路原理图图1-25“闪烁外接LED”程序21X1359.indd 242021/3/11 11:42:2325 251.3 开源硬件系统的组成及开发环境会提示“上传成功!”并且LED会按照程序设计的延时间隔不停地闪烁,如图1-26所示。如果出现“上传失败”的提示,则需要检查开发板型号是否正确、串口是否选对和程序是否有误。程序的编译调试可能要经过多轮反复的迭代测试,其中包括调试、验证、上传、修改、再调试实 践各小组尝试连接多个LED到Arduino开发板上,并设计和编写程序实现多个外接LED闪烁的各种场景及其效果。实验三:模拟驼峰信号机绿色信号灯1实验目标:模拟驼峰信号机绿
66、色信号灯。2实验问题:(1)什么是驼峰信号机?驼峰信号机的绿色信号类型分多少种?每种信号的含义是什么?(2)编写程序实现模拟驼峰信号机工作状态的灯信号,要求灯信号间有一定时间间隔(例如,亮3000毫秒,亮灭时间间隔2000毫秒)。图1-26“闪烁外接LED”实物示意图21X1359.indd 252021/3/11 11:42:232626第一章 认识开源硬件项目3实验分析:(1)模拟绿色信号灯,即只使用到一个绿色LED。(2)基于灯信号规范,通过控制灯光电路通断,设计和编程控制绿色LED的闪烁效果,模拟驼峰信号机绿色信号灯工作时表示通过和加速通过的工作状态。4实验器材:绿色LED 1个、Ar
67、duino开发板1块、USB连接线1条、220 电阻1个。5硬件搭建:与实验二“闪烁外接LED”的硬件搭建一致,按图1-24所示的电路原理图进行硬件搭建。6编程实现:编写模拟驼峰信号机绿色信号灯程序的算法有多种,其中一种如图1-27所示,对应的程序如图1-28所示。其中,图1-28左边程序为主程序,右边为“闪烁子程序”。图1-27“模拟驼峰信号机绿色信号灯”程序流程图21X1359.indd 262021/3/11 11:42:2327 271.3 开源硬件系统的组成及开发环境图1-28“模拟驼峰信号机绿色信号灯”程序7上传测试:用USB线将搭建好硬件电路的Arduino开发板与计算机连接,并
68、在Mixly软件中选对串口号,然后在Mixly界面中点击“上传”,将所编写的程序上传到Arduino开发板上。待Mixly提示“上传成功”后,观察绿色LED的长亮与闪烁信号是否明显。如果不明显,则修改程序。实验四:模拟充电宝指示灯1实验目标:利用5个LED做实验,模拟充电宝充电工作指示灯的效果。2实验问题:(1)充电宝在充电作业状态中,指示灯有多少个,它们的亮灭规律是怎样的?(2)用5个LED模拟搭建充电宝指示灯,5个LED是串联连接还是并联连接?(3)是否需要每个LED都外接一个电阻,它的作用是什么?能否将5个LED串联或并联到一个电阻上?(4)指示灯亮灭的效果,在程序设计上,是否有多种方法
69、可实现?3实验分析:(1)在电路连接上,需要将5个LED分别连接到开发板数字引脚,以实现对引脚工作电压的编程控制,以控制LED的通断状态。(2)充电宝指示灯作业状态是1号灯到5号灯按顺序点亮,每个灯点亮之间需要设置延时时间,然后全部关闭,再重新依次点亮,依此循环。4实验器材:红色LED 5个、Arduino开发板1块、USB连接线1条、220 电阻5个、面包板1块。5硬件搭建:“模拟充电宝指示灯”电路原理图如图1-29所示,电路搭建模拟图如图1-30所示。5个LED的负极连接到GND,正极分别串联一个220 的电阻,然后分别连21X1359.indd 272021/3/11 11:42:242
70、828第一章 认识开源硬件项目接到数字引脚D2、D3、D4、D5和D6脚上。图1-29“模拟充电宝指示灯”电路原理图图1-30“模拟充电宝指示灯”搭建模拟图6编程实现:为了实现依次点亮5个LED,各个LED点亮时需要延时500毫秒,其程序设计可使用顺序结构编程实现,也可以使用循环结构实现指示灯循环闪烁。我们可先以顺序结构编程去实现,再以循环结构编程去实现。“模拟充电宝指示灯”程序流程图(循环结构)如图1-31所示,程序如图1-32所示。21X1359.indd 282021/3/11 11:42:2729 291.3 开源硬件系统的组成及开发环境图1-31“模拟充电宝指示灯”程序流程图图1-3
71、2“模拟充电宝指示灯”程序7上传测试:用USB线将搭建好硬件电路的Arduino开发板与计算机连接,并在Mixly软件中选对串口号,然后在Mixly界面中点击“上传”,将所编写的程序上传到Arduino开发板上。待Mixly提示“上传成功”后,观察LED是否按实验目标实现。如果效果不明显,则修改程序,使充电宝模拟指示灯效果更逼真。项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,开展项目作品信息系统21X1359.indd 292021/3/11 11:42:273030第一章 认识开源硬件项目的搭建和实验调试,了解利用开源硬件进行项目开发的项目组成,体会利用开源硬件进行设计、控制
72、和创新的含义,并参照项目范例的样式,撰写相应的项目成果报告。成果交流各小组运用数字化学习工具,将所完成的项目成果,在小组或班级上进行展示与交流,共享创造、分享快乐。活动评价各小组根据项目选题、拟订的项目方案、实施情况及所形成的项目成果,利用教科书附录2的“项目活动评价表”,开展项目学习活动评价。21X1359.indd 302021/3/11 11:42:2731 31本章扼要回顾本章扼要回顾同学们通过本章学习,根据“认识开源硬件项目”知识结构图,扼要回顾、总结、归纳学过的内容,建立自己的知识结构体系。回顾与总结21X1359.indd 312021/3/11 11:42:293232第一章
73、认识开源硬件项目本章学业评价同学们完成下列测试题(更多的测试题可以在教科书的配套学习资源包中查看),并通过“本章扼要回顾”以及本章的项目活动评价,综合评价自己在信息技术知识与技能、解决实际问题的过程与方法,以及相关情感态度与价值观的形成等方面,是否达到了本章的学习目标。1单选题(1)所谓开源,是指(),自由分享,可以被公众使用。A公开源代码 B公开硬件 C自由发布 D开放源动力(2)开源硬件具有()、低成本、标准化的特征。A开放性 B制作精良 C易加工 D易分享(3)开源硬件项目,一般由()和输入组件、输出组件组成,形成运算控制系统。A开源硬件 B开源硬件开发平台 CArduino IDE D
74、Mixly2思考题(1)开源硬件的特征是什么?(2)影响开源硬件发展的主要原因是什么?(3)开源硬件对技术发展和技术应用创新有什么意义?3情境题(1)灯光信号在生活中经常被用到,如红绿灯用于交通控制、车头灯用于汽车行驶等。在本章实验一和实验二的基础上,动手探究,尝试改变程序的参数,使得LED的闪烁效果适用于不同的场景。(2)用几个电阻,多个分别能发红、黄、绿色光的LED,一块面包板,一块Arduino开发板和若干连接线,尝试按以下要求设计一个基于开源硬件的交通红绿灯模拟显示系统。分别对控制两种颜色或三种颜色的交通灯模拟系统进行硬件搭建。用Mixly或ArduBlock进行编程,分别实现控制两种
75、颜色或三种颜色交通灯模拟系统的功能。21X1359.indd 322021/3/11 11:42:3033 331.3 开源硬件系统的组成及开发环境第二章开源硬件项目的开发流程与方案设计数字化、智能化的技术使产品性能设计越来越人性化,让我们的生活越来越便捷。智能调光夜灯、智能加湿器等智能生活用品或装置在成为产品销售之前,通常都需要经过生产开发流程,蕴含一般的开发技术和方法。随着开源硬件技术的发展和全球创客运动的推动,人们越来越重视利用开源硬件及编程语言工具进行创意设计与制作,并通过自己的创造与分享,共同推进技术设计的应用和社会的发展。本章将通过“基于开源硬件项目的开发规划”项目,进行自主、合作
76、、探究学习,让同学们体验基于开源硬件完成项目的基本流程,知道常用开源硬件的功能与特征;懂得基于事物特征的分析,设计基于开源硬件的作品开发方案,描述作品各组成部分及其功能作用,明确各组成部分之间的调用关系;懂得根据设计方案,选择恰当的开源硬件,搜索相关的使用说明资料,审查与优化作品设计方案,从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进信息技术学科核心素养达成,完成项目学习目标。开源硬件项目开发的基本流程 开源硬件项目开发的创意策划 开源硬件项目开发的方案设计21X1359.indd 332021/3/11 11:42:323434第二章 开源硬件项目的开发
77、流程与方案设计基于开源硬件的感应灯开发规划项目范例情 境随着智能硬件技术的不断发展,产品的创新设计愈发丰富,从而改善和提升人们的生活品质。在智能控制系统中,智能灯光系统是其子系统之一。智能灯光系统能够根据环境光强度进行开启、关闭及自动调节,以实现自动化管理,实现节能环保。现在,我们以简单的感应灯现实情境“傍晚,校园路灯点亮;清晨,校园路灯熄灭”为例,利用开源硬件,进行“基于开源硬件的感应灯开发规划”项目的探究学习活动。主 题基于开源硬件的感应灯开发规划 规 划根据项目范例的主题,在小组中组织讨论,利用思维导图工具,制订项目的学习规划,如图2-1所示。探 究根据项目学习规划的安排,通过调查、案例
78、分析、文献阅读或网上资料搜索,开展“基于开源硬件的感应灯开发规划”项目学习探究活动,如表2-1所示。图2-1“基于开源硬件的感应灯开发规划”项目学习规划 21X1359.indd 342021/3/11 11:42:3435 35基于开源硬件的感应灯开发规划表2-1“基于开源硬件的感应灯开发规划”项目学习探究活动探究活动学习内容知识技能基于开源硬件的感应灯开发规划开源硬件项目开发的基本流程。创意、设计、制作、测试、运行的含义和在流程中的地位与作用。体验基于开源硬件完成项目的基本流程,知道常用开源硬件的功能与特征。学习基于开源硬件的感应灯项目开发方案设计开源硬件项目开发的创意策划。项 目 选 题
79、、题 目 拟定、设计创意的策划。懂得基于事物特征的分析,设计基于开源硬件的作品开发方案,描述作品各组成部分及其功能作用,明确各组成部分之间的调用关系。懂得根据设计方案,选择恰当的开源硬件,搜索相关的使用说明资料,审查与优化作品设计方案。开源硬件项目开发的方案设计。项目功能需求分析、功能组件设计、元器件选型、方案优化、制订项目开发技术方案书。实 施实施项目学习各项探究活动,进一步认识基于开源硬件的感应灯开发规划的重要性。成 果在小组开展项目范例学习过程中,利用思维导图工具梳理小组成员在“头脑风暴”活动中的观点、建立观点结构图,运用多媒体创作工具(如演示文稿、在线编辑工具等),综合加工和表达,形成
80、项目范例可视化学习成果,并通过各种分享平台发布,共享创造、分享快乐。例如,运用在线编辑工具制作的“基于开源硬件的感应灯开发规划”可视化报告,可以在教科书配套学习资源包中查看,其目录截图如图2-2所示。图2-2“基于开源硬件的感应灯开发规划”可视化报告目录截图21X1359.indd 352021/3/11 11:42:353636第二章 开源硬件项目的开发流程与方案设计评 价根据教科书附录2的“项目活动评价表”,对项目范例的学习过程和学习成果在小组或班级上进行交流,开展项目学习活动评价。项目选题同学们以36人组成一个小组,选择下面一个参考主题,或者自拟一个感兴趣的主题,开展项目学习。1基于开源
81、硬件的危险警示灯开发规划2基于开源硬件的温馨小夜灯开发规划3基于开源硬件的电子琴开发规划项目规划各小组根据项目选题,参照项目范例的样式,利用思维导图工具,制订相应的项目方案。方案交流各小组将完成的方案在全班进行展示交流,师生共同探讨、完善相应的项目方案。2.1 开源硬件项目开发的基本流程利用开源软硬件开发一个有趣的、实用的创意作品,一般需要经历从想法构思到具体实现的过程。这些项目或是简单的个人手工制作作品,或是复杂的系统。当项目开发工作量较大,需要通过团队、互联网开展规模化分工合作时,就要借助工程项目开发方法,制订详细、具体的项目开发方案,有序推进项目开展。从一个想法构思到自己动手实践,将想法
82、予以实现,是一个体验创造、收获满足的过程。不同目标、不同功能的开源项目作品,所使用到的元器件、硬件搭建的方法以及对应功能实现的程序设计会有不同,但其开发的基本流程是相同的。从工程学的角度看,每一个项目的开展都可以被划分为不同阶段。例如,当人们为了21X1359.indd 362021/3/11 11:42:3537 372.1 开源硬件项目开发的基本流程解决一个复杂问题时,按时间顺序将问题分解为一个个子问题,然后进行“各个击破”,这种策略被称为“生命周期法”。但是这种顺序严格的方法,在某些场合中灵活性不够,开发时效性较差,因此一些新的工程项目开发方法应运而生,如快速原型法等。开源硬件的项目开发
83、通常采用快速原型法,一般需要经历作品的创意、设计、制作、测试、运行的完整过程,可归纳为开发规划、硬件搭建、程序设计三大核心环节,如图2-3所示。开发规划环节包含创意和设计两个阶段,是项目开发思路的整理和表达,其目标是形成具有创意,并且可以具体实现的项目方案,是项目开发的重要部分,决定了整个项目的方向与质量。制作、测试和运行属于项目实施的阶段,其目标是让项目方案变成具体的项目成果,并使之达到最优化,是让纸面上的方案真正落地的重要步骤,也是对方案的检验、完善。对于项目开发规划,一般根据实际的运行、迭代情况,会对前期设计方案进行修改,使项目能朝着优化、可实现的方向前进。探究活动拓 展生命周期法:生命
84、周期法是信息系统最早使用的一种开发方法,至今仍在大中型系统图2-3 开源硬件项目开发的基本流程21X1359.indd 372021/3/11 11:42:353838第二章 开源硬件项目的开发流程与方案设计项目开发中广泛使用。该方法假设信息系统有一个生命周期,就像其他任何有生命的机体那样有一个开始、成熟、最终死亡的发展过程。传统的生命周期法是一个结构化的、正式的系统开发方法,将系统开发过程划分为明确的各个阶段,每个阶段都有明确的任务,整个开发过程是按顺序地一个一个阶段进行开发的。该方法还在信息系统专家和用户之间划分了明确的分工。它将软件工程学和系统工程的理论与方法引入计算机系统的研制开发中,
85、按照“用户至上”的原则,采用结构化、模块化自顶向下对系统进行分析和设计。具体来说,它将整个信息系统开发过程划分为独立的六个阶段,包括系统分析、程序设计、系统测试、运行、维护和系统评估。这六个阶段构成信息系统的生命周期。快速原型法:第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。第二步是在第一步的基础上开发客户满意的软件产品。具体来说,它将整个开发过程划分为需求分析、原型开发、原型评价、最终系统设计和最终系统实现五大部分,如图2-4所示。在现代工业设计完整流程中,开源硬件项目开发中的创意、设计、制作、测试和运行五个环节,实际属于快
86、速原型法中的电子硬件原型开发的范畴。电子硬件原型会有更多的迭代和反馈,直至产品系统设计完成。2.1.1 创意项目开发,要有创新意识、创新思维和创新能力。创新即创造新的理论、新的方法或新的事物。所创造出来的新事物或新方法也可以称为有创意的事物或有创意的方法。开源硬件项目开发的电路原型,为产品创新提供了实验模型,可通过“头脑风暴”的方式,利用思维工具,对要开发的项目的想法与构思进行表达。2.1.2 设计设计是指对要开发的项目进行方案设计,包括项目需求分析和项目功能与组件的划图2-4 快速原型法21X1359.indd 382021/3/11 11:42:3639 392.1 开源硬件项目开发的基本
87、流程分。方案设计包括形成技术方案、核心模块选型。项目在开发规划阶段需要回答两个问题:一是为了解决选题所蕴含的问题,需要做一个怎样的作品;二是回答做这个作品应如何找出问题解决方案。综合来讲,就是需要站在创作作品的角度,考虑所面对的问题和预想的功能以及在解决这些问题时所需要运用的工具和方法。2.1.3 制作开源项目的制作,一般分为硬件搭建和程序设计两大部分。1硬件搭建在开源硬件项目中,控制器和输入输出接口集成在开发板上,开发者将电子元器件通过面包板连接,实现与开发板的通信,形成电路连接原型的过程,称为硬件搭建。2程序设计程序设计是指基于开发板及其开发环境,使用程序设计语言实现功能的过程。如Ardu
88、ino开发板,可使用Arduino IDE 开发环境、第三方图形化编程工具(ArduBlock、Mixly等)进行程序设计,将项目功能予以实现。程序设计需要反复调试,不断优化,以实现预设的功能。2.1.4 测试对搭建好的硬件和编写完成的程序进行测试,并不断调整,使硬件电路能够正常工作、程序正常运行,从而实现设计的功能。一般地,测试结束后就能看到作品的原型了。对于不需要制作作品外壳的实验项目而言,测试结束,项目制作就完成了。2.1.5 运行实验项目完成的作品原型,在成为完整的作品前,需要制作成电路板和相关部件一起安装在外壳内,并在真实环境中使用运行,验证其功能的稳定性和实效性,同时根据运行数据不
89、断修改、完善项目设计,使其迭代发展。观 察观看教科书配套学习资源包“第二章分析基于开源硬件的感应灯”中“项目测试运行效果”的视频文件,将观察结果填写到表2-2中。21X1359.indd 392021/3/11 11:42:364040第二章 开源硬件项目的开发流程与方案设计表2-2 感应灯项目功能分析表观察内容项目分析功能效果观察到的效果:实现什么功能:项目组件由哪些组件组成:应用场景项目可应用于哪些场景:作品评价作品做得怎样:还可以怎样改进:项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,经历项目开发流程中创意、设计、制作、测试、运行的整个流程,并体会其作用与含义。1创意:本
90、项目选题的事物特征是什么?用什么创意方式实现?2设计与制作:本项目的总体组成、调用关系及其实现创意的原理及技术是什么?3测试与运行:本项目开发实验是否一步到位成功?是否经历测试和优化过程?2.2 开源硬件项目开发的创意策划创意策划,是指将用户从生活中萌发的想法、创意转化为项目开发的问题定义和可视化结构组件的过程。创意策划包括项目选题的策划和项目构思的创意策划。2.2.1 项目选题的策划项目开发,创意是关键。创意源于生活,研发和创作的灵感也均来自生活,或是为了提升生活品质,抑或是为了解决生活中的问题。如果我们使用某种策略、某种方式或某种实物试图解决其中的一个问题,这其实就是我们创造力的体现。即使
91、成果不一定都能转化为普遍使用的产品,但也具有相当的创新意义。选题即选择项目开发的作品主题并确定其名称,简单来说,就是要确定做什么和问题是什么。开源硬件项目开发的创意,首先表现在选题上。1选题方向开源硬件项目选题方向要考虑到以下四个方面:21X1359.indd 402021/3/11 11:42:3641 412.2 开源硬件项目开发的创意策划(1)感兴趣。选题应该选择自己感兴趣的方向和领域,这样制作效率和成功率更高,也更容易获取满足感和成就感。(2)有意义。选题应该从生活出发,可以制作有趣的、解决问题的或可以改善生活品质的有意义的作品,并在制作过程中同时学习和掌握某种知识和技能。注意不能选择
92、危害人身安全或社会安全等违法的主题。(3)有新意。选题应该考虑生活中的需要和社会发展的新趋势,从不同角度、运用不同的技术方法,融合不同领域的知识确定选题方向。(4)可行性。选题要考虑实际条件,充分预计可能涉及的因素和困难,对其操作性和可行性进行估算,以免浪费物力和人力,甚至危害到人身安全。要实现选题创意,还需要多观察生活,从生活上的细微处考虑,多浏览同类产品的多种设计,体验产品多元设计的创意。2题目拟订为作品拟订一个好题目(名字),也是创意体现的一部分。题目表述可写实、可寓意,但文字指向一定要具体。例如,智能除菌毛巾架、智能保温杯、智能加湿器等属于写实名字,“点点通”(指纹锁)、“扫地宝宝”(
93、扫地机器人)等属于寓意名字。探究活动讨 论讨论以下开源硬件项目作品的题目与选题方向是否贴合。若不贴合,给出修改建议。选题方向:智能玩具作品题目:(1)任你玩体感控制小车 (2)智能加湿器 (3)智能婴儿床铃(4)iRobot (5)跳舞达人 (6)家庭交互式射击玩具实 践各小组根据自己的项目选题,组织讨论,为项目起名,并在组间交流。2.2.2 项目构思的创意策划开源硬件项目开发的创意策划,首先要围绕选题进行资料的查询和收集,包括文献资料的查阅、同类产品的查阅和比较等;其次还需要实地调查和开展目标用户群的访谈,以获取更多有关项目开发的信息和灵感;最后整理收集到的资料,并从各个方向进行设计构21X
94、1359.indd 412021/3/11 11:42:364242第二章 开源硬件项目的开发流程与方案设计思和创意策划,具体如图2-5所示。1面向用户对象的创意如今设计力和生产力越来越强,物质产品也愈加丰富,创意愈加重要。我们面向设计的开发,将会趋向于关注用户的心理,从细微处着手。针对不同的使用人群作为创意设计的切入口,是常用的方法。首先考虑产品将以哪一类人群为使用对象,这一类对象有什么特点,如何针对他们设计创意。接着考虑是单一功能的产品设计,还是综合功能的产品设计,是否有同类产品,如何做出创意。例如,盲人使用的智能拐杖、小学生书包智能运载小车等都是面向对象的创意设计。2功能上的创意项目设计
95、要明确产品具体应用于什么场景,基于什么情境解决什么问题,与以往的产品有什么不同,弥补了哪些不足,同样功能原理的产品还可以应用于什么情境。例如,基于开源硬件项目的感应灯,其光控系统,可以用于楼道、校道,也可以用于植物光控室等。用在不同场景时,项目系统组件的变换、型号的变更等都是创新。3形式上的创意随着社会的发展和进步,人们对产品制作材料、产品造型和大小、色彩感觉等的品质要求都在不断提升。这要求产品样式在设计上需要做出更多的创意,具备打动用户的元素。这些打动用户的元素,可能是一个可爱的小按钮,也可能是外观造型的线条美感。这些样式的设计,因为材料硬度和体积大小的不同,将在问题识别和需求分析方面影响开
96、源图2-5 开源硬件项目开发的创意策划21X1359.indd 422021/3/11 11:42:4343 432.2 开源硬件项目开发的创意策划硬件项目的选型和电路布局。4技术上的创意技术上的创意关联于项目开发本身使用的技术,包括电子硬件的技术、程序设计的技术等。技术的进步和创意,往往会对产品有革命性的迭代发展。例如,共享单车、智能语音模块控制的装置等。根据设计创意的方向,对感应灯项目进行充分的想象和创意策划,可以衍生多个项目的创意(图2-6),包括“会感光的心情小屋”“我们班的感光许愿树”“肉肉植物的光控箱”“贴心的小夜灯”等。更多的感应灯项目,以及更综合的社会项目的设计,都需要我们发挥
97、创意,通过团队合作,做好策划设计与原型实验。阅 读iMagic是一款使用手机蓝牙遥控的智能灯具,其项目创意起源于对一个已有照明产品的不满。开发者认为,能走进千家万户的无线LED智能照明产品应该价格优惠、简单实用,并且具备丰富的个性化定制功能。在有了这个项目概念以后,他们通过一个简单的图2-6 感应灯项目开发的创意策划21X1359.indd 432021/3/11 11:42:544444第二章 开源硬件项目的开发流程与方案设计市场调研,确定了该想法具有一定可行性。最后,他们通过召集项目团队进行“头脑风暴”,确定了产品的总体方案和技术实现的三个可能方向分别是Wi-Fi、蓝牙、ZigBee(一种
98、短距离、低功耗的无线通信协议)。至此,该项目已经从一个概念性的想法,变成了后续可以不断讨论和完善、细化的方案了。由此看来,创意是需要策划才能变得具体、可行。创意远期的目标可能无限宏远,但近期目标,特别是小项目应该根植于解决真实问题或者需要满足的真实需求。在这个过程中,调查和访谈就是了解真实问题和真实需求最直接、最常用的方法。而情境分析技术则是访谈中比较高效的做法。所谓情境分析技术就是将用户置身在一个特定的需求情境中,然后尝试运用所提出的项目创意解决这个需求,并在和用户反复互动中全面了解用户的真正需求的一种方法。假设我们是他们中的一名队员,需要了解用户在卧室中使用iMagic智能灯的需求,那么我
99、们可能首先会以自己为调查对象,构想自己对智能灯的功能要求,如闹铃响时灯光渐亮、入睡前变成黄光、阅读时变成白光、识别睡眠状态自动关灯等一系列或简单或复杂的要求。交 流生活中哪些情境可利用感应技术开发相应的装置?与同学交流、分享彼此的想法,并将其填写在表2-3中。表2-3 功能情境创意对应表应用场景(情境)装置名创意与功能描述体 验以小组为单位,完成以下实验。实验:灯光信号设计控制与应用1实验目标:不同场景灯光信号的设计与应用。(1)根据过春节的节日习惯,通过RGB全彩灯为家里的盆橘设计与制作“喜庆氛围灯”。(2)按交通规则,使用RGB全彩灯模拟设计一个十字环岛交通信号灯系统。2实验问题:(1)“
100、喜庆氛围灯”是体验艺术型灯光信号的设计与应用,效果由自己进行个性化策划设计,属于开放性设计,可以根据效果进行原理分析和电路搭建,并编程控制调试实现喜庆的感觉和氛围。(2)“十字环岛交通信号灯”是体现实用型灯光信号的设计与应用,效果要符合生活真实场景的需要,属于模板性结构化设计,可以根据效果进行原理分析和电路搭建,并21X1359.indd 442021/3/11 11:42:5445 452.2 开源硬件项目开发的创意策划编程控制调试使其功能符合真实场景需求。3实验分析:(1)设计“喜庆氛围灯”,首先要考虑支持的LED个数、闪烁效果的算法,接着考虑设计LED电路连接图。(2)设计“十字环岛交通
101、信号灯”,首先是调研观察,记录十字环岛的灯的个数、亮灭顺序,然后分析其功能和逻辑规律,设计其程序算法。4实验器材:RGB全彩灯(共阴)4个、Arduino开发板1块、USB连接线1条、220 电阻12个、面包板1块。5硬件搭建:两个项目的电路连接都使用同一个电路,4个RGB灯电路连接原理图如图2-7所示,电路搭建模拟图如图2-8所示。每个RGB灯除共阴极接到GND,其他各引脚都需要串联一个220 电阻,再连接到相应的数字引脚上。图2-7 全彩灯电路连接原理图图2-8 全彩灯电路搭建模拟图21X1359.indd 452021/3/11 11:42:574646第二章 开源硬件项目的开发流程与方
102、案设计6编程实现:请根据两种场景的需要,参考相应的流程图,设计程序。其中,“喜庆氛围灯”的程序设计流程图如图2-9所示,“十字环岛交通信号灯”的程序设计流程图如图2-10所示。图2-9“喜庆氛围灯”程序设计流程图图2-10“十字环岛交通信号灯”程序设计流程图21X1359.indd 462021/3/11 11:42:5747 472.3 开源硬件项目开发的方案设计7上传测试:编写好程序后,上传到Arduino开发板上,观察程序编写是否正确,效果是否达到实验要求。如果结果不正确或效果不理想,需尝试修改程序,再次上传测试。将测试效果填写入如表2-4所示的灯光信号的设计控制与应用实验记录表中。表2
103、-4 灯光信号的设计控制与应用实验记录表结果分析多个LED(RGB)喜庆氛围灯十字环岛交通信号灯闪烁效果实 践各小组根据自己的项目选题,组织讨论,尝试使用手绘稿表达想法,然后利用思维导图工具,将选题方向、题目拟订和创意表达等方面的内容呈现出来。2.3 开源硬件项目开发的方案设计开源硬件项目开发的方案设计,是从项目需求分析出发,为实现项目而进行的具体化、可操作性强的文案设计,主要包括项目的功能需求分析、功能组件设计、元器件选型、设计图样绘制和技术方案制订。2.3.1 项目功能需求分析产品原型的提出,经常是基于一个假设。这个假设,可能是美好的愿望,可能是一些奇思妙想,在设计实现与生产之前,总会经历
104、无数的分析论证和开发实验。创意策划之后,就要进行项目功能需求分析。项目功能需求分析就是对所开发的项目功能的需求进行分析。需求分析要进行问题识别和分解,最后对问题进行梳理与合并。以感应灯项目为例,剖析其功能情境,我们可列出需求分析和问题分析的识别框架,如表2-5所示。21X1359.indd 472021/3/11 11:42:574848第二章 开源硬件项目的开发流程与方案设计表2-5 感应灯项目需求分析与问题识别框架功能情境功能分析问题识别和分解问题梳理与合并当环境光线变弱到一定程度的时候,灯会自动亮起。控制系统能够感应光线值减少,控制灯点亮。需要能够感知环境光线变化的组件。设置当光线值减少
105、到一定值时,确定触发控制条件的光线阈值下限值。明确如何点亮LED。寻找能够感知并测量环境光线强度变化的电子元器件。测量并确定光线强弱阈值触发范围。寻找能够感应人体靠近和远离的电子元器件。如何控制LED的亮灭。在光线强的条件下,人体靠近是否亮灯。当环境光线恢复到一定强度的时候,灯会自动熄灭。控制系统能够感应光线值的增加,控制灯熄灭。需要能够感知环境光线变化的组件。设置当光线值增加到一定值时,确定触发控制条件的光线阈值上限值。明确如何熄灭LED。当人体靠近作品的时候,灯会自动亮起。控制系统能够检测到人体靠近,控制灯点亮。需要能够检测到人体靠近的组件。设置当检测到人体靠近时,触发控制的条件,并点亮L
106、ED。当人体远离作品的时候,灯会自动熄灭。控制系统能够检测到人体走远,控制灯熄灭。需要能够检测到人体靠近的组件。当检测到人体远离时,触发控制的条件,并熄灭LED。实 践各小组根据相应的项目选题,组织讨论,参照范例,利用表格或思维导图工具,将功能情境、功能分析、问题识别与分解以及问题的梳理与合并等相关内容呈现出来。2.3.2 项目功能组件设计根据问题识别框架,以及通过分析、梳理、合并形成的问题清单,对照开源硬件项目的一般组成,需要划分和描述作品各部分的组成、功能作用,并设计要承担实现其功能的组件。1功能组件设计需要解决的问题(1)确定承担主控功能的平台。承担运算和控制功能的是开源硬件开发平台,可
107、根据项目的复杂程度、运算频率、功能便捷性等考虑能满足开发任务需求的具体类型和型号。(2)确定承担输入功能或输出功能的组件。例如,感应灯项目中,感知光线的传感器承担输入信号功能,感应人体靠近或远离的传感器,也承担输入功能。(3)确定输出信号的方法。例如,LED的颜色变化或闪烁模式。(4)确定数字输入组件及检测信号类型。感应灯项目组件功能的划分如图2-11所示。21X1359.indd 482021/3/11 11:42:5749 492.3 开源硬件项目开发的方案设计2组件搜索和探究承担实现项目功能和问题解决的组件由哪些元器件组成,是一个元器件还是需要定制的模块、小系统,是否需要反复查阅资料与筛
108、选分析,这些都是制订方案前要搞清楚的问题。组件搜索主要是选元器件或由元器件搭建而成的稳定的应用模块,主要根据核心功能的需求分析,上网或查阅相应的资料,了解能够实现该功能的元器件名称、功能特性、电气参数与产品价格。在感应灯项目中,经上网查阅资料和讨论,功能组件选择如下:开发板:Arduino UNO输入组件:光敏电阻、固定电阻、人体红外传感模块输出组件:LED阅 读元器件是构成电路的基本元素,是元件和器件的合称。元件指构成电路的单个制件,可以在同类电路中调换使用,如电阻、电容、晶体管等;器件指电路中能独立起控制变换作用的单元,一般由多个元件组成,例如集成电路、电子模块。光敏电阻是利用半导体的光电
109、导效应制成的一种电阻值随入射光的强弱而改变的电阻器,又称为光电导探测器。常用的光敏电阻,当入射光强时,电阻减小,入射光弱,电阻增大;也有特殊的光敏电阻,当入射光弱时,电阻减小,入射光强,电阻增大。常用的光敏电阻如图2-12所示。人体红外感应传感器是通过热释电效应将人体红外线所产生的温度转化为电荷电压的一种传感器,又称热释电红外传感器,如图2-13所示。人体红外感应传感器在使用时,若有人靠近,则其电荷电压经内部电路放大后输出高电平信号;若附近无人靠近,则输出低电平信号。图2-11 感应灯项目组件功能划分图2-12 光敏电阻图2-13 人体红外感应传感器21X1359.indd 492021/3/
110、11 11:42:575050第二章 开源硬件项目的开发流程与方案设计实 践上网搜索能够采集到光线强弱变化的电子元器件和感应人体靠近的电子元器件,并填写表2-6。表2-6 采集光线和感应人体的电子元器件列表元器件名称元器件外观照片资料地址关键参数价格工作电压:引脚数:正负极:实现同一种功能的元器件,可能在型号、类别上都有所不同,这需要我们查阅、共享资源,了解相关信息进行甄别,或一一进行实验探究。元器件的选型,可能在具体项目实验探究的过程中随时调换,修正最初选择。2.3.3 项目元器件选型硬件通常有多种品牌和型号,我们需要在确定项目功能需求后,对所需要的元器件选型做判断,再确定硬件清单。选择硬件
111、,需要深入查阅资料,或参照工具书范例,或通过开源硬件社区咨询行内人士,积累经验,以提高准确度,节省项目开支,避免资源浪费。1选定开发板Arduino开发板有多款型号,其中Arduino UNO比较常用。在具体的开发实践中可根据项目功能、创意作品的尺寸大小等因素,选择其他开发板,以及考虑是否需要选择扩展板等。2选定元器件(1)选定实现项目功能的核心元器件及数量。例如,光控选择光敏电阻,测距选择超声波测距传感器或人体红外感应传感器等,这些都是实现感应灯项目的核心元器件。感应灯项目的核心元器件及其功能实现如表2-7所示。21X1359.indd 502021/3/11 11:42:5851 512.
112、3 开源硬件项目开发的方案设计表2-7 感应灯项目功能实现对应表功能需求分析选型分析实现分析能够感知并测量环境光线强度变化的电子元器件。当光线信息到达一定条件的时候,元器件内部数值会发生变化。需要一个能够采集到光线强弱变化的电子元器件光敏传感器(光敏电阻)。了解光敏电阻的工作电压与工作电流。在电路中需要固定电阻串联,要计算其电阻值。了解光敏电阻的感光数值变化范围。了解人体感应传感器的感应角度范围。光照强度大,光敏电阻小,流过的电流大;光照强度小,光敏电阻大,流过的电流小。能够感应人体接近和离开的元器件。对比检测距离的传感器,选择感知人体的传感器。人体进入感应范围,输出高电平;人体离开感应范围,
113、输出低电平。(2)选择支持项目功能实现的其他元器件及数量,如电阻、电容、LED、杜邦线、面包板等。(3)计算相关电阻的参数。一般光敏电阻在无光时,电阻大于20 k;在有光时,小于1 k。为了能使感应灯项目中R1上有明显的电压变化,选择与无光时光敏电阻量级相当的10 k作为分压电阻。而在LED与R3串联的支路中,我们可以选择红色LED。红色LED的工作电压约1.8 V,工作电流一般为15 mA,根据欧姆定律,其限流电阻R3=5-1.815=213.3。因此,我们可以取最接近的220 电阻作为选用电阻。该限值电阻依然可让其他颜色LED正常工作,但亮度会有所变化。观 察观察感应灯项目使用到的元器件的
114、尺寸、外观以及元器件参数等,将所获取的信息或疑问记录下来,填入表2-8中。表2-8 感应灯项目中的元器件清单序号元器件数量备注观察记录1开发板:Arduino UNO12R1:电阻10 k1若干备用3R2:光敏电阻(5528)1若干备用4R3:电阻220 1若干备用5LED:3 mm(直径)1若干备用,颜色不限6人体红外感应模块:HC-SR50117面包板(400孔)18杜邦线(公对公)若干21X1359.indd 512021/3/11 11:42:585252第二章 开源硬件项目的开发流程与方案设计2.3.4 项目设计图样绘制1绘制电路原理图电路原理图,是搭建电路之前的“建筑蓝图”。电路图
115、一般由三部分组成,分别是元器件、连线和参数。常用元器件包括电源、电阻、电容、LED、电位器、光敏电阻、扬声器等。连线是将各元器件按电路示意的规则连接在一起,形成正常工作的电路。参数是指在电路图中各元器件所标记的数据,比如电阻的阻值、电容的容值、电池的电压等。绘制电路原理图,需要熟悉各元器件的标准画法,需要根据功能需求设计。实 践1查看各元器件与Arduino开发板所连接的引脚,根据观察结果,按各个元器件的绘制方式及绘制规范,分别绘制LED电路和光敏电阻感应电路,如图2-14所示为感应灯项目的电器原理图。2观察光敏电阻在遮光和不遮光两种情况下LED的状态变化。感应灯项目电路控制原理是通过将一个受
116、光强影响的信号电压和一个受人体红外线影响的信号电压转变为二进制数据,再通过开发板中的程序判断其是否达到控制要求,并输出相应LED指示的过程。具体为:(1)传感电路的一部分通过光敏电阻与固定电阻串联分压,将光强变化通过光敏电阻转化为R1两端的电压变化。开发板通过不断采集“模拟转数字”接口A0上R1两端变化的电压数据,再转化为计算机可识别的二进制数据。(2)传感电路另一部分通过人体红外感应传感器中的人体红外线热电效应功能不断判断传感器周围是否有人存在,并以高低电平的形式传输到开发板。然后,开发板再将光强信号与人体信号进行综合判断,得出符合控制要求的灯光控制命令。(3)控制电路部分通过开发板的数字端
117、口D13作为受控电源,与LED及其限流电阻R3组成串联电路,并由内部程序控制D13的输出电压大小。当D13被设定为高电平时,端口电压为5 V,LED两端将达到工作电压并发光。当D13被设定为低电平时,端口电压为低电平时,LED两端电压为零并熄灭。图2-14 感应灯项目电路原理图21X1359.indd 522021/3/11 11:42:5853 532.3 开源硬件项目开发的方案设计讨 论上网搜索资料,将常见的电路元器件名称、用途、符号等补充到表2-9相应的单元格内,并在小组内讨论各元器件之间的区别。表2-9 常见电路原理图符号元器件名称用途元器件符号(美式)元器件符号(欧式)电阻阻碍电流电
118、容(不带极性)临时储存电荷电容(带极性)临时储存电荷发光二极管(LED)指示与照明电池2绘制电路搭建模拟图在面包板上的实验项目,如果需要转化为印制电路板的走线,可以使用电路图制作软件(如Fritzing软件)绘制电路搭建模拟图(也称为电路原型图)进行转化。感应灯项目的电路搭建模拟图如图2-15所示。体 验1参照图2-14,尝试绘制各小组相应项目的电路原理图。2Fritzing是电子设计绘图软件,使用“拖拉”方式即可完成复杂的电路设计,支持开源硬件项目电路搭建模拟图的绘制。上网搜索Fritzing软件,下载安装后,模仿图2-15完成电路搭建模拟图,并按照相应的项目选题完成电路搭建模拟图。图2-1
119、5 感应灯项目电路搭建模拟图21X1359.indd 532021/3/11 11:42:585454第二章 开源硬件项目的开发流程与方案设计3制作功能对应表根据功能实现的逻辑关系,制作其功能对应表。感应灯项目功能对应表如表2-10所示。表2-10 感应灯项目功能对应表光线人体红外灯强人靠近不亮弱人靠近亮强人离开不亮弱人离开不亮思 考想象感应灯闪烁方式的变化进行思考,然后在下框中列出功能与灯闪烁的对应方式。4绘制程序设计流程图根据功能实现的逻辑关系,绘制程序设计流程图,如图2-16所示。交 流上网搜索流程图符号的表示方法,围绕小组的项目选题和功能策划,与同学交流绘制程序设计流程图。图2-16
120、感应灯项目程序设计流程图21X1359.indd 542021/3/11 11:42:5955 552.3 开源硬件项目开发的方案设计2.3.5 项目技术方案制订在完成了项目功能需求分析、功能组件设计、元器件选型、设计图样绘制后,最后根据分析和技术解决方案,制订项目开发的技术方案书。方案书的内容模板可参照表2-11。表2-11 开源硬件项目开发技术方案书项目名称项目描述项目背景:使用人群:功能定位:情境创意:要解决的问题:附:创意策划的思维导图项目合作与分工项目负责人:成员:分工:开发进度管理项目选题与创意策划阶段:项目开发技术方案设计阶段:项目开发实验与测试阶段:项目运行阶段:实现方案问题识
121、别技术实现硬件搭建电路图:程序设计程序设计流程图:硬件清单从草拟技术方案书,到项目实施,即从写到做,会有一个反复修改、迭代实现的过程。21X1359.indd 552021/3/11 11:42:595656第二章 开源硬件项目的开发流程与方案设计项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,领会项目事物情境特征与功能实现的对应关系,理解并描述作品各组件及其对应组成部分间的数据处理和调用关系,并参照项目范例的样式,撰写相应的项目成果报告。成果交流各小组运用数字化学习工具,将所完成的项目成果,在小组或班级上进行展示与交流,共享创造、分享快乐。活动评价各小组根据项目选题、拟订的项目
122、方案、实施情况及所形成的项目成果,利用教科书附录2的“项目活动评价表”,开展项目学习活动评价。21X1359.indd 562021/3/11 11:42:5957 57本章扼要回顾本章扼要回顾同学们通过本章学习,根据“开源硬件项目的开发流程与方案设计”知识结构图,扼要回顾、总结、归纳学过的内容,建立自己的知识结构体系。回顾与总结21X1359.indd 572021/3/11 11:43:005858第二章 开源硬件项目的开发流程与方案设计本章学业评价同学们完成下列测试题(更多的测试题可以在教科书的配套学习资源包中查看),并通过“本章扼要回顾”以及本章的项目活动评价,综合评价自己在信息技术知
123、识与技能、解决实际问题的过程与方法,以及相关情感态度与价值观的形成等方面,是否达到了本章的学习目标。1单选题(1)开源硬件项目开发的基本流程是()、设计、制作、测试和运行。A创意B创造C创新D调研(2)设计创意策划,可以面向用户对象设计创意,也可以在()、形式上和技术上设计创意。A功能上B使用上C艺术上D流程上(3)基于开源硬件的项目开发规划在功能需求分析之后,要进行功能组件设计、()、设计图样绘制和技术方案制订。A元器件选型B结构分析C流程图绘制D撰写计划2思考题我们可以通过智能设计对生活做哪些改变?哪个是你最想亲手设计实现的?谈谈你的想法和计划。3情境题(1)如果要制作一个能够监测煤气泄漏
124、的自动报警器,可以使用哪些元器件来制作?制订出该项目开发设计方案书。(2)我国西部地区土壤和空气各有什么特点?对生活带来什么影响?我们可以开发什么项目来解决和改善生活?自拟题目,据此做一个开源硬件项目的开发规划设计方案。21X1359.indd 582021/3/11 11:43:0259 592.3 开源硬件项目开发的方案设计“纸上得来终觉浅,绝知此事要躬行。”不经过动手实验,就不知道哪些创意在技术上可以实现,哪些创意是自己还无法实现或暂时用当下已有的技术还不能实现的。因此,我们需要根据实际情况及时调整创意、修改电路设计、改变硬件搭建、更改程序、反复调试等。开源硬件的项目开发,是一个迭代设计
125、、迭代修改、不断完善的过程。简单的开源硬件项目,一般只要迭代几次即可完成;复杂的开源硬件项目,可能迭代数十次仍然未能圆满解决问题,还需要寻找援助,对功能需求进一步地调整。本章将通过“基于开源硬件项目的制作”项目,进行自主、合作、探究学习,让同学们初步学习如何根据设计方案,选择恰当的开源硬件,搜索相关的使用说明资料,审查与优化作品设计方案;了解作品制作过程中各种设备与组件的安全使用规则和方法,根据设计方案,利用开源硬件、相关组件与材料,完成作品制作;利用开源硬件的设计工具或编程语言,实现作品的各种功能模块,并初步体验测试、运行作品的数据采集、运算处理、数据输出、调控执行等各项功能,优化设计方案,
126、从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进信息技术学科核心素养达成,完成项目学习目标。项目作品的硬件搭建 项目作品的程序设计 项目作品的功能测试与运行第三章开源硬件项目的制作21X1359.indd 592021/3/11 11:43:046060第三章 开源硬件项目的制作基于开源硬件的感应灯制作项目范例情 境一般而言,造物从拆物开始。对于各种感受环境光线、环境声音、人体感应等信息的灯光控制系统,我们是否思考过这种灯光控制系统安装在哪里,内部结构怎样,主要由哪些元器件组成?现在,我们可以按照感应灯项目的规划和技术方案,动手制作感应灯,完整体验开源硬件项
127、目的开发过程。主 题基于开源硬件的感应灯制作规 划根据项目范例的主题,在小组中组织讨论,利用思维导图工具,制订项目学习规划,如图3-1所示。探 究根据项目学习规划的安排,通过调查、案例分析、文献阅读或网上资料搜索,开展“基于开源硬件的感应灯制作”项目学习探究活动,如表3-1所示。图3-1“基于开源硬件的感应灯制作”项目学习规划21X1359.indd 602021/3/11 11:43:0661 61基于开源硬件的感应灯制作表3-1“基于开源硬件的感应灯制作”项目学习探究活动探究活动学习内容知识技能项目作品的硬件搭建计算机辅助设计工具软件。了解计算机辅助设计工具软件。初步学习如何根据设计方案,
128、选择恰当的开源硬件,搜索相关的使用说明资料,审查与优化作品设计方案。了解作品制作过程中各种设备与组件的安全使用规则和方法。电路设计与仿真。探究计算机辅助设计工具软件的操作与范例。硬件搭建的器材。了解常用元器件的功能和使用方法。硬件搭建的方法。了解各组件设备的搭建规则和方法。硬件搭建的测试工具。了解电路测试的工具和使用方法。硬件搭建的安全防护。了解硬件搭建的安全防护事项。项目作品的程序设计用图形化的编程工具编程。使用图形化编程工具进行程序设计,体验和探究算法及参数的调整对组件执行的运算处理。根据设计方案,利用开源硬件的设计工具或编程语言,实现作品的各种功能模块,完成作品的制作。初步体验根据设计方
129、案,测试、运行作品的数据采集、运算处理、数据输出、调控执行等各项功能,优化设计方案。用文本代码编程工具编程。了解文本代码编程工具的语法规则、流程算法和功能代码语句的使用。项目作品的功能测试与运行项目作品测试。知道项目作品测试的方法。项目作品运行。体验项目作品在真实环境运行、反馈和调控执行的情况,修改、优化和完善设计方案。实 施实施项目学习各项探究活动,进一步体验和探究基于开源硬件的作品制作。成 果在小组开展项目范例学习过程中,利用思维导图工具梳理小组成员在“头脑风暴”活动中的观点,建立观点结构图,运用多媒体创作工具(如演示文稿、在线编辑工具等),综合加工和表达,形成项目范例可视化学习成果,并通
130、过各种分享平台发布,共享创造、分享快乐。例如,运用在线编辑工具制作的“基于开源硬件的感应灯制作”可视化报告,可以在教科书的配套学习资源包中查看,其目录截图如图3-2所示。基于开源硬件的感应灯制作21X1359.indd 612021/3/11 11:43:066262第三章 开源硬件项目的制作评 价根据教科书附录2的“项目活动评价表”,对项目范例的学习过程和学习成果在小组或班级上进行交流,开展项目学习活动评价。项目选题同学们以36人组成一个小组,选择下面一个参考主题,或者自拟一个感兴趣的主题,开展项目学习。1基于开源硬件的危险警示灯制作2基于开源硬件的温馨小夜灯制作3基于开源硬件的语音控制灯制
131、作项目规划各小组根据项目选题,参照项目范例的样式,利用思维导图工具,制订相应的项目方案。方案交流各小组将完成的方案在全班进行展示交流,师生共同探讨、完善相应的项目方案。图3-2“基于开源硬件的感应灯制作”可视化报告目录截图21X1359.indd 622021/3/11 11:43:0763 633.1 项目作品的硬件搭建3.1 项目作品的硬件搭建在开源硬件项目作品方案制订完成之后,我们需要利用合适的硬件器材按照一定的步骤将作品搭建完成。3.1.1 硬件搭建的器材硬件搭建的器材有很多,包括搭建工具、元器件等。只有了解并选择合适的硬件器材,才可以高质量完成开源硬件项目作品的制作和研发。1常用元器
132、件(1)LED。在电子类项目中,LED是实验中最常用的元器件。选择LED,主要从外观和发光颜色、极性、工作电压和电流等方面考虑。外观和发光颜色:LED有直插式(图3-3),也有贴片式。直插式LED的塑料外壳通常是圆柱形的,其大小尺寸用圆柱的直径表示,例如直径5 mm、8 mm。LED塑料外壳有的透明,有的有色,外壳透明的LED有发单色光的,也有发其他光的,如“白发白”“白发红”“白发彩”等。其中,“白发彩”LED又叫RGB LED。外壳有色的LED,其外壳是什么颜色就发什么颜色的光,方便使用者辨识。也就是说,使用者可以根据颜色和直径大小需要选择LED。探究活动查 阅1上网查阅直插式LED的型号
133、、封装尺寸等的表述方式和含义。2上网查阅贴片式LED的外观、型号、封装尺寸等的表述方式和含义。极性:LED是一种会发光的二极管,具有单向导电性。在如图3-4所示的LED中,长图3-3 直插式 LED的外观和颜色21X1359.indd 632021/3/11 11:43:076464第三章 开源硬件项目的制作脚为正极,短脚为负极。但有一些引脚切齐的LED不好判断,其正、负极需要通过LED外壳边缘缺边的一侧引脚(表示负极)判断。若正、负极接反,LED不会发光。工作电压、工作电流:不同颜色的LED的工作电压不同。例如,红色LED的工作电压是1.8 V,白色LED的工作电压是33.4 V之间。不同颜
134、色的LED不能直接并联,否则可能导致有些亮而某些不亮。LED连接在电路时,需要串联一个电阻,以调节通过LED的电流,防止LED因电流过大而被烧毁。实 践准备一个纽扣电池、一块面包板、一个220 电阻、若干种颜色的LED。测试LED的颜色和亮度,并注意观察正接和反接时的实验现象。仿照图2-14中LED与电阻组成的串联电路,观察不同工作电压的LED在相同限流电阻下亮度的变化。(2)电阻。电阻也是电子制作中最常用的元器件,可分为直插式和贴片式。如图3-5所示是直插式电阻。电阻参数:电阻有额定功率和电阻值两个参数。电阻的尺寸与功率有关。一般而言,电阻尺寸越大其功率也越大。因此在选择电阻时应尽量考虑尺寸
135、大小及其功率之间的关系,避免其“局部发热”对电路的影响。色环电阻:在小功率电阻上常以不同颜色的条纹来表示阻值大小,通常称为“色环图3-4 LED的正负极图3-5 各式各样的直插式电阻21X1359.indd 642021/3/11 11:43:0865 653.1 项目作品的硬件搭建电阻”。色环电阻数值读取方法如图3-6所示。其中,在四道色环电阻中,第一道色为十位数,第二道色为个位数,第三道色为乘数,第四道色为误差率。例如,图2-14中的两个电阻,R1为10 000,R3为220。若实物为1%误差率的四色环电阻,则R1的色环标记从左到右依次为“棕黑橙棕”,R3的标记为“红-红-棕-棕”;若实物
136、为1%误差率的五色环电阻,则R1标记为“棕黑黑红棕”;R3标记为“红-红-黑-黑-棕”。其他常用元器件有蜂鸣器、数码管、LED显示屏、红外线传感器、超声波传感器等。思 考先根据色环电阻数值的读取方法,观察感应灯项目中所用的电阻,读出并记录其电阻值;再根据相应的项目选题,选择和计算要用到的电阻个数和阻值,并填入表3-2中。表3-2 所用色环电阻情况表图片阻值个数图3-6 色环电阻数值读取方法21X1359.indd 652021/3/11 11:43:096666第三章 开源硬件项目的制作2硬件搭建工具(1)面包板。电子电路原型的制作,可以利用面包板进行硬件搭建,从而开展电路实验。电路的硬件搭建
137、就是把相关元器件的引脚按一定规则连起来,形成电流回路。电路原型是根据项目功能设计的线路,若要制成成品,还需制成电路板。电路板是重要的电子部件,是电子元器件的支撑体,是电子元器件线路连接的提供者。基于面包板的电路原型的快速搭建,是实验室电路搭建的技能基础。常见面包板有400孔(图3-7)和800孔。面包板是专为电子电路的无焊接实验设计制造的,板子正面有许多小孔,孔里面有金属片,每个金属片在内部是按顺序连接的。把元器件按照内部通断的连接关系,将元器件插到小孔里面,就能组建成电路。电源和地线:面包板的最上部和最下部分别有两条平行走向的金属条,分别设置为电源线(红色)和地线(黑色)。连通:标注了电源(
138、+)和地线(-)的两排孔横向连通,中间两排5孔是纵向连通的,如图3-7所示。在稍大的面包板上,电源线和地线会被分割为几个部分,一方面可以在每个部分设置不同的电源值;另一方面也可以缩短连线的长度,使原型系统的走线更美观。跳线:在整个面包板只使用一种电源电压的情况下,通过一个跳线就可以很方便地将各部分连接为整体。(2)杜邦线。杜邦线是将元器件通过面包板跟开发板连接的“缝纫线”,可以通过插针与插孔实现元器件间的连接。有插针一端为公,插孔一端为母,两端都是插针的称为公对公,两端都是插孔的称为母对母,一端为插针、一端为插孔的称为公对母。如图3-8所示是常见的公对公和母对母杜邦线。杜邦线有长短之分,可以适
139、应不同的需要。图3-7 400孔面包板图3-8 杜邦线21X1359.indd 662021/3/11 11:43:0967 673.1 项目作品的硬件搭建(3)电源。开源硬件项目的电源可以为电路供电,包括各种型号的纽扣电池、碱性电池等。基于开发板Arduino UNO的硬件项目可以通过以下三种方式供电:外部直流电源通过电源插座供电。电池连接电源连接器的GND和VIN引脚供电。USB(图3-9)接口直接供电。处于电路原型开发阶段的项目,一般采用USB接口直接供电。3.1.2 硬件搭建的步骤以感应灯项目的硬件搭建为例,具体搭建方法和步骤如下:1准备器材按技术设计方案的感应灯项目电路搭建模拟图(见
140、图2-15)将所需的元器件和搭建工具放置在工作桌上。工作桌最好是平整的长条形的。具体的器材如下:(1)元器件:一个220 电阻(R3)、一个10 k电阻(R1)、一个5528光敏电阻(R2)、一个人体红外感应传感器和一个LED。(2)工具:一块400孔面包板、若干公对公杜邦线、一根USB-B线。2开始搭建准备好器材之后,我们可以依照以下步骤搭建,搭建后的实物图如图3-10所示。图3-9 各类不同的USB接口图3-10 感应灯硬件搭建实物图LEDR3R2R1人体红外感应传感器21X1359.indd 672021/3/11 11:43:106868第三章 开源硬件项目的制作(1)将光敏电阻R2的
141、两个引脚分别插在面包板同一列中的“+”级横向插孔和纵向插孔。(2)将电阻R1一引脚与R2插在同一列纵向插孔中,另一引脚插在“-”级横向插孔中,使其连通成串联关系。(3)将LED插在面包板中,负极插到面包板“-”极横向插孔中。(4)将电阻R3插在面包板中间两列孔中,其中一个引脚跟LED的正极插在同一列插孔中。(5)将人体红外感应传感器的OUT引脚用公对母杜邦线连接Arduino开发板的D3引脚。(6)用杜邦线按照电路原理图(见图2-14)将各元器件连接到Arduino开发板相应的引脚上。(7)检查各接口的松紧,松动的可反复摁紧。3通电试验将USB线的一端连接上主控板后,再将另一端连接到计算机。3
142、.1.3 硬件搭建的安全防护项目范例电路原型的实验搭建,虽未涉及强电操作、引脚焊接、电路板印刷等,但搭建过程也不能掉以轻心,以免发生意外。在现实生活中,面向真实世界的开源硬件项目设计,在用电、用设备器具时都必须建立安全意识和规程意识,避免人体触电、灼伤、割伤等,同时注意保护设备、工具、元器件不被损坏。以下是实验电路搭建时要注意的安全防护事项:(1)注意连接方法,防烧毁、防短路。要小心细致认清开发板及元器件的正负极,防止电源接反烧毁元器件;要小心细致阅读电路图,以免漏接元器件,导致电流过载,烧毁元器件;要小心注意元器件的连接方法,防止短路。(2)注意工具器件摆放,防压、防跌落。要清理和摆放好搭建
143、工具桌桌面,保证器具摆放妥当,以免开发板、电子模块等跌落后造成电路断裂或外壳损坏;对于液晶屏、触摸屏等器件要防压、防划伤;将饮水器皿放置在远离电路的位置,以免打翻浸湿器件、损坏器件,甚至引起触电等。(3)遵守操作规程,防受伤、防损毁。认真遵守各种设备、工具的使用规程和元器件使用方法。例如,必须断电后才进行电路搭建,正确使用万用表的挡位,不用手强拧舵机摇臂等,以免不当使用,器具遭损坏。项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,开展项目的硬件搭建。1认识并动手尝试,体验常用元器件通过杜邦线与面包板连接成电路的过程,了解电路图与电路实体之间的关系。21X1359.indd 682
144、021/3/11 11:43:1069 693.2 项目作品的程序设计2阅读并熟记硬件搭建过程的安全防护事项,组内轮流操作,相互观察与监督,注意防范违规操作。3.2 项目作品的程序设计在开源硬件项目开发中,项目作品程序设计的过程一般为:围绕项目需求分析问题,设计算法;利用编程工具为项目中各功能模块编写程序,并通过调试运行,实现作品的各项功能。编程工具是呈现算法、实现项目功能的平台,主要有图形化编程工具和文本代码编程工具两种。3.2.1 用图形化编程工具编程图形化编程工具有很多种,我们以感应灯项目为例,采用Mixly图形化编程软件进行程序设计。1测试感光数据的阈值感应灯项目中灯的亮灭是通过光敏电
145、阻感知环境光的强弱来控制的,即受到从A0获取的感光数据这一条件的约束。因此,需要利用串口监视器来测试感光数据如何随环境光变化,从而明确其判断条件。打开Mixly软件,使用“串口”模块类中的“打印(自动换行)”代码块,将从A0获取的感光数据输出到串口监视器中显示,为避免显示时的闪烁,再加一条延时代码块,如图3-11所示。选择好Arduino开发板的型号和计算机所分配的串口号,将程序上传到Arduino开发板。上传成功后,打开串口监视器,可以看到所监测到的感光数据,如图3-12所示。图3-11“模拟串口打印”程序光线强时的监测值光线弱时的监测值图3-12 串口监视器监测到的感光数据21X1359.
146、indd 692021/3/11 11:43:127070第三章 开源硬件项目的制作探究活动实 践利用串口监视器监测当前环境的光线值,并通过遮光和不遮光方式实验观察串口监视器中呈现的感光电压数据变化,确定感光数据的阈值及对LED控制的条件。2利用Mixly编写实现功能模块的程序当遮挡射入光敏电阻R2的环境光线时,从模拟引脚A0读取的传感器的值将增大,否则,读取的值会减小。经过反复试验,用最大值和最小值之差取中间值的方法确定光线强弱的临界值,比如430。按表2-10所示的感应灯项目功能对应表及图2-16所示的感应灯项目程序设计流程图,根据光线弱且人靠近时灯亮起的逻辑设计,感应灯项目可以利用“如果
147、执行否则”的分支结构编写程序:如果A0读取到的值大于430,同时人靠近或离开,D13的灯都不亮;当A0读取到的值小于或等于430时,人靠近,灯会亮10秒,人离开后,灯不会亮。参考程序如图3-13所示。体 验结合自选项目主题,用Mixly或ArduBlock编写程序,实现功能。3.2.2 用文本代码编程工具编程由于Mixly图形化编程软件可以由计算机自动生成代码,当对图形化程序逐步熟悉,对Arduino编程语言C语言加深理解后,我们可以直接使用代码进行编程,也可以利用图形化程序的参考代码对其进行优化,改写成较简洁的代码程序。1Arduino IDE程序的基本组成一个Arduino IDE程序主要
148、包括两部分,即设置函数setup()和循环函数loop()。(1)设置函数setup()。setup()函数主要用于放置变量的初始化等设置性的内容以及只运行一次的程序代码,具体形式为:图3-13 感应灯项目参考程序21X1359.indd 702021/3/11 11:43:1371 713.2 项目作品的程序设计void setup()/放置设置代码,只运行一次(2)循环函数loop()。loop()函数中放置主程序代码,这些代码将无限次重复运行,具体形式为:void loop()/主程序代码,无限次重复运行2程序结构在Arduino IDE的setup()函数和loop()函数中所放置的程
149、序代码,都遵循C语言的规范,我们可以运用C语言的编程规范来编写代码。C语言的程序结构通常有顺序结构、分支结构和循环结构三种。(1)顺序结构。顺序结构是最基本的程序结构。在顺序结构中,程序按照语句的先后顺序依次执行。(2)分支结构。在程序设计的过程中,经常需要根据当前的计算结果做出判断,以决定下一步的操作,这时就会用到分支结构。分支结构有两种语句:if语句和switchcase语句。if语句是最常用的选择结构实现方式,当给定的表达式为真时,就会运行其后的语句。if语句最简单的形式为:if(表达式)语句;(3)循环结构。循环结构就是反复执行某一部分的操作。循环结构包括while循环、dowhile
150、循环和for循环三种。其中for循环使用比较灵活,故应用广泛。for循环的一般形式为:for(表达式1;表达式2;表达式3)语句;例如,for(i=0;i 430)digitalWrite(13,LOW);else if(digitalRead(3)digitalWrite(13,HIGH);delay(10000);else digitalWrite(13,LOW);在源代码程序中,出现了analogRead()和digitalWrite()函数,这些都属于Arduino库函数。analogRead()函数用于读取模拟端口数值,digitalWrite()函数用于设置数字端口高、低电平的输出
151、。实 践参照项目范例,在Arduino IDE中,编写“基于开源硬件的感应灯项目开发”程序,并编译上传。实 验以小组为单位,完成以下实验。实验:对比感应方式不同的传感器1实验目标:对比使用不同的传感器触发感应灯的效果。2实验问题:(1)感应人体靠近的传感器除了人体红外感应传感器外,还有其他的传感器也可以感应人体靠近吗?它的名称、管脚和参数各是什么?(2)其他感应方式的传感器与人体红外感应相比,效果如何?3实验任务:我们以超声波测距传感器为例,将感应灯项目中使用的人体红外感应传感器替换为超声波测距传感器进行实验比对,观察和记录现象,对比两种感应方式的传21X1359.indd 722021/3/
152、11 11:43:1373 733.2 项目作品的程序设计感器在感应距离、感应效果上的区别。4硬件搭建:将第二章图2-15所示的“感应灯项目电路搭建模拟图”中的人体红外感应传感器替换为超声波测距传感器,如图3-14所示。图3-14 感应灯项目电路搭建模拟图(超声波测距传感器)5编程实现:实验的Mixly图形化程序示例如图3-15所示。图3-15 Mixly图形化程序示例6记录和对比:将实验现象和数据记录在表3-3中。表3-3 实验记录感应器件感应条件感应距离、角度感应效果人体红外感应传感器超声波测距传感器实 践各小组在网上搜索并选择声音感应的元器件,确定其名称和型号,再利用该元器件进行感应灯实
153、验电路连接,然后编程实现利用声音控制灯光的开启和关闭,并对比分析距离感应控制和声音感应控制感应灯的效果差异。21X1359.indd 732021/3/11 11:43:147474第三章 开源硬件项目的制作项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,开展实现项目功能的程序设计任务。1体验图形化编程和文本代码编程的操作界面、过程和指令表述规则,了解其各自的优势。2围绕项目功能情境,修改指令参数,探究多种算法的可能性,理解程序算法对项目数据的采集、处理、调控和输出的策略和影响。3.3 项目作品的功能测试与运行3.3.1 项目作品的功能测试在完成项目搭建以及程序设计后,还应接通项
154、目系统的电源,运行程序,对照项目技术设计方案要解决的问题,查看各预设的功能是否已实现。以感应灯项目为例,对照表2-10中对应的功能状态,用遮光罩罩住光敏电阻,测试LED是否亮起;拿开遮光罩,测试LED是否熄灭;在有遮光罩时,人体靠近,灯亮起;没有遮光罩时,人靠近,灯不亮。反复尝试,观察LED的亮灭反应的时间、亮度和变化方式,从而对项目技术设计方案进行修改或优化。运行程序后,如果发现结果不符合预期,即项目系统的输出信号效果跟技术设计方案预设的结果不一致,就需要对项目作品系统进行调试。3.3.2 项目作品的系统调试1项目作品系统调试的步骤项目作品系统调试的步骤包括硬件检测、程序调试和联合调试。(1
155、)硬件检测。将连接Arduino板电源端的USB线拔掉,断开电源。对照电路图检查各元器件与Arduino板连接的端口是否正确,元器件连接正负极是否正确等。检查各元器件与Arduino板连接的松紧度。重新插上电源,运行程序,检查结果是否符合预期。21X1359.indd 742021/3/11 11:43:1475 753.3 项目作品的功能测试与运行(2)程序调试。如果硬件检测不成功,就要检查程序代码是否存在问题。检查程序各语句是否有错漏。如果有,在修改后,要重新上传,再运行程序,测试效果。对照程序设计流程图,检查程序代码的整体逻辑,检查编写的程序是否正确并达到预期功能需求,包括结构的使用、语
156、句的使用和放置的位置、参数值的设置等。如果发现问题,尝试做修改,反复测试运行。确认成功后,对流程图、技术方案等修改备注。如果还是不成功,则要进行联合调试。(3)联合调试。可在断开电源后,更换面包板连接插孔、元器件等,再接通电源运行程序,反复进行硬件和程序的联调测试,直至成功。也可使用多用电表对电路连接的两端进行测量,检查电路的通断、元器件是否作业。如果发现元器件被烧毁,要更换元器件,包括开发板等。由于Arduino IDE开发环境中没有单步调试,因此采用Arduino IDE进行项目设计会面临调试手段匮乏的问题。为此,可使用模拟断点的方法进行调试:用“亮灯+有条件循环+Print语句”,实现模
157、拟断点调试的效果;或把整个程序分成几个小程序,然后逐个进行测试。2电子电路的测试工具在测试电子电路的通断或确定电流值时,常常需要用到测试工具多用电表(图3-16)。多用电表可用来测量电压、电流、电阻等。(1)用多用电表测量电阻。在开源硬件项目开发中,多用电表较多地被用来测量未知电阻的阻值。使用指针式多用电表测试电阻的方法与步骤为:将功能开关调到合适的测量挡位上;将红黑表笔短接,进行调零检测;分别将红黑表笔接触被测电阻,读取多用电表的示数。如果测量值过大或测量不准,则要调整测量挡位,重复执行步骤,直到示数合适。(2)用多用电表测量电压和电流。使用多用电表测量电压和电流时,要注意区分是直流电流还是
158、交变电流。以数字型多用电表为例,测量前,要先将功能开关调到对应功能挡位,并根据被测电路的大约数值,选择一个合适的量程位置,将表笔的金属针分别接触被测量项目的电路两端,如果正确连接,即可显示出相应数值。注意测量电压时,要把电表表笔并接在被测电路上;而测量电流时,则需要串联于电路中。(3)用多用电表测量电路的通断。测试电路通断的方法与步骤为:将功能开关调到合适的测量挡位上;将红黑表笔图3-16 常见多用电表21X1359.indd 752021/3/11 11:43:147676第三章 开源硬件项目的制作分别放置在要测量的电路两端,如果显示阻值为无穷大或较大电阻值,则电路为断,需要查元器件是否接触
159、不良或已损坏。探究活动实 践运行程序,测试感应灯项目作品是否实现了预设的功能;如否,使用上述调试方法进行项目调试,直到运行成功。3.3.3 项目作品的运行运行是指将实验作品放置于真实环境,并长时间通电运行,检验其功能的可行性、稳定性、有效性和进行老化试验。如果作品原型功能在真实环境中与在实验室模拟环境中的功能不相符合,就要分析出现的问题,对技术设计方案进行修改和优化,直到功能与预设一致并运行稳定。思 考在实际应用中,安装在楼道、房间等空间内的感应灯会在灯光点亮后,使光敏电阻入射光线增加而触发关灯操作,从而导致灯光闪烁的情况。如何解决此问题?项目实施各小组根据项目选题及拟订的项目方案,结合本节所
160、学知识,体会项目作品的设计思路与技术实现的对应性,反复调试,分析项目调试、反馈和执行情况,寻找最优设计方案,并参照项目范例的样式,撰写相应的项目成果报告。成果交流各小组运用数字化学习工具,将所完成的项目成果,在小组或班级上进行展示交流,共享创造、分享快乐。活动评价各小组根据项目选题、拟订的项目方案、实施情况及所形成的项目成果,利用教科书附录2的“项目活动评价表”,开展项目学习活动评价。21X1359.indd 762021/3/11 11:43:1477 77本章扼要回顾本章扼要回顾同学们通过本章学习,根据“开源硬件项目的制作”知识结构图,扼要回顾、总结、归纳学过的内容,建立自己的知识结构体系
161、。回顾与总结21X1359.indd 772021/3/11 11:43:167878第三章 开源硬件项目的制作本章学业评价同学们完成下列测试题(更多的测试题可以在教科书的配套学习资源包中查看),并通过“本章扼要回顾”以及本章的项目活动评价,综合评价自己在信息技术知识与技能、解决实际问题的过程与方法,以及相关情感态度与价值观的形成等方面,是否达到了本章的学习目标。1单选题(1)在项目开发制作阶段,项目作品的实验要经历()、程序设计、功能测试与运行的过程。A电路接线 B硬件搭建C电路仿真 D器件测量(2)将元器件跟面包板连接的“缝纫线”,称为()。A电线 B电源C杜邦线 D连接线(3)当项目作品
162、功能测试失败时,以下调试方法无效的是()。A硬件检测 B程序调试C联合调试 D再次上传2思考题你对自己参与设计和制作的项目作品是否满意,为什么?思考迭代优化对改进作品的意义和价值。3情境题在家庭厨房里,偶尔会发生烧水时把水壶烧得冒烟或煤气泄漏等危险事情。如果我们能够利用开源硬件制作一个监测煤气泄漏或烟雾浓度的自动报警器,那么就能对厨房安全事故予以有效的控制和防范。制作一个监测烟雾或煤气浓度的自动报警器项目,并回答以下问题。(1)完成项目的开发,并设计硬件搭建图和程序代码。(2)形成项目开发的成果报告,在班上或网络空间分享交流。21X1359.indd 782021/3/11 11:43:177
163、9 79本章学业评价随着物联网技术的发展,原先一体化的硬件设计模式将被打破,软件技术的本质和内涵将被重新定义,硬件资源将均可编程和管控,我们将进入“人机物”可融合计算的场景,万物皆可互联,一切均可编程。本章将通过“基于开源硬件的监测仪开发”项目,进行自主、协作、探究学习,让同学们完整体验利用开源硬件完成项目作品的基本流程,进一步理解常用开源硬件的功能和特征,懂得基于事物特征的分析,设计基于开源硬件的作品开发方案,描述作品各组成部分及其功能作用,明确各组成部分之间的调用关系;进一步掌握根据设计方案,选择合适的输入输出组件组成系统,完成作品制作,懂得测试、运行作品的数据采集、运算处理、数据输出、调
164、控执行等各项功能,优化设计方案,从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进信息技术学科核心素养达成,完成项目学习目标。开发板的I/O信号控制 开源硬件项目的输入组件 开源硬件项目的输出组件 综合应用项目开发第四章开源硬件项目输入输出组件及综合应用项目开发21X1359.indd 792021/3/11 11:43:198080第四章 开源硬件项目输入输出组件及综合应用项目开发基于开源硬件的教室空气质量监测仪开发项目范例情 境目前,全社会对环保问题都极为关注,特别是每天的空气质量更是人们经常讨论的话题之一。无论是室外还是室内,CO2等气体的浓度或PM2.
165、5细颗粒物的浓度的增加,都将极大地影响人们的身体健康。因此,监测空气质量,关注室内空气质量状况,也成为普通市民包括同学们可以积极参与研究的事情。我们将利用开源硬件进行教室空气质量监测仪的实验制作,亲身体验基于开源硬件的项目开发。主 题基于开源硬件的教室空气质量监测仪开发规 划根据项目范例的主题,在小组中组织讨论,利用思维导图工具,制订项目学习规划,如图4-1所示。探 究根据项目学习规划的安排,通过调查、案例分析、文献阅读和网上资料搜索,开展“基于开源硬件的教室空气质量监测仪开发”项目学习探究活动,如表4-1所示。图4-1“基于开源硬件的教室空气质量监测仪开发”项目学习规划基于开源硬件的教室空气
166、质量监测仪开发21X1359.indd 802021/3/11 11:43:2181 81基于开源硬件的教室空气质量监测仪开发表4-1“基于开源硬件的教室空气质量监测仪开发”项目学习探究活动探究活动学习内容知识技能教室空气质量监测仪的输入组件认识常用的几种环境检测类传感器与物理测量类传感器及其实验。了解作品制作过程中各种设备与组件,例如常用的传感器、执行器等输入输出组件的功能、特征、使用方法和安全使用规则。基于事物特征的分析,设计基于开源硬件的作品开发方案,描述作品各组成部分及其功能作用,明确输入、输出组件与主控板等各组成部分之间的调用关系。教室空气质量监测仪的输出组件模拟信号、数字信号及其输
167、入输出的程序函数。认识常用的几种执行器与显示组件及其实验。教室空气质量监测仪的综合应用项目开发从 创 意 策 划 到 测 试 运行,学习空气质量监测仪的设计与制作。根据设计方案,选择恰当的开源硬件,搜索相关的使用说明资料,审查与优化作品设计方案。根据设计方案,利用相关开源硬件、相关组件,完成作品制作。根据设计方案,利用开源硬件的设计工具或编程语言,实现作品的各种功能模块。根据设计方案,测试、运行作品的数据采集、运算处理、数据输出、调控执行等各项功能,优化设计方案。实 施实施项目学习各项探究活动,进一步体验和探究基于开源硬件的教室空气质量监测仪开发过程。成 果在小组开展项目范例学习过程中,利用思
168、维导图工具梳理小组成员在“头脑风暴”活动中的观点,建立观点结构图,运用多媒体创作工具(如演示文稿、在线编辑工具等),综合加工和表达,形成项目范例可视化学习成果,并通过各种分享平台发布,共享创造、分享快乐。例如,运用在线编辑工具制作的“基于开源硬件的教室空气质量监测仪开发”可视化报告,可以在教科书的配套学习资源包中查看,其目录截图如图4-2所示。图4-2“基于开源硬件的教室空气质量监测仪开发”可视化报告目录截图基于开源硬件的教室空气质量监测仪开发21X1359.indd 812021/3/11 11:43:228282第四章 开源硬件项目输入输出组件及综合应用项目开发评 价根据教科书附录2的“项
169、目活动评价表”,对项目范例的学习过程和学习成果在小组或班级上进行交流,开展项目学习活动评价。项目选题同学们以36人组成一个小组,选择下面一个参考主题,或者自拟一个感兴趣的主题,开展项目学习。1基于开源硬件的校园水质监测仪开发2基于开源硬件的家庭防盗监测仪开发3基于开源硬件的社区噪声监测仪开发项目规划各小组根据项目选题,参照项目范例的样式,利用思维导图工具,制订相应的项目方案。方案交流各小组将完成的方案在全班进行展示交流,师生共同探讨、完善相应的项目方案。4.1 开发板的I/O信号控制4.1.1 开发板的I/O信号类型数据信号按信号传输的特点分为模拟信号和数字信号。1模拟信号模拟信号也称为模拟量
170、,是指在时间和数值上都连续变化的信号,如图4-3(a)所示。温度和声音信号都属于模拟信号。2数字信号数字信号也称为数字量,是指在时间或数值上断续变化的信号,如图4-3(b)所示。数字量只有两个,分别为0和1。例如,LED只有点亮(对应1)或熄灭(对应0)两种状21X1359.indd 822021/3/11 11:43:2283 834.1 开发板的I/O信号控制态。在Arduino开发板上,常用1表示高电平,0表示低电平。模拟量和数字量的对比示意图如图4-3所示。图4-3 模拟量和数字量对比图4.1.2 开发板的数字和模拟引脚在Arduino开发板上有不同的引脚,分别对应模拟信号和数字信号,
171、在实际使用过程中不可混用,引脚分布详见图1-13所示的Arduino UNO开发板实物图。1数字引脚在Arduino开发板上,数字引脚一般编号为013(一般写为D0D13),可以用于数字信号输入或输出。用作输入时,用于读取传感器的数据;用作输出时,用于控制执行器。数字引脚的值只能为HIGH(对应1)和LOW(对应0)两种。2模拟引脚Arduino开发板上的模拟引脚一般编号为A0A5,常常被当作模拟输入引脚使用,用于读取模拟输入的电压值,亦可用于数字输入与输出。与数字引脚只能读取HIGH和LOW不同,模拟输入引脚能够将05 V电压分成01023共1024个不同等级。另外,在数字引脚013中,引脚
172、编号前面带有波浪线()的,如3、5、6、9、10、11,表示支持PWM(Pulse Width Modulation,脉冲宽度调制)输出,可作为模拟输出引脚使用。4.1.3 开发板信号处理的程序函数1信号输入函数在Arduino中,根据读取输入信号类型的不同,读取函数也分为数字输入函数和模拟输入函数两种。(1)数字输入函数digitalRead()。digitalRead()函数用于从指定的数字引脚读取值,返回值为高电平(HIGH)或低电平(LOW)。如果引脚悬空,则返回值不确定(随机返回HIGH或LOW)。数字输入函数的引用格式为:digitalRead(pin);其中,参数pin是指设备所
173、连接的引脚编号,如“digitalRead(11);”,指读取D11引脚21X1359.indd 832021/3/11 11:43:228484第四章 开源硬件项目输入输出组件及综合应用项目开发的数字信号值。(2)模拟输入函数analogRead()。analogRead()函数用于从指定的模拟引脚读取值,返回值的范围为01023。如果引脚悬空,则其返回值不确定(会受到其他模拟输入口的值或手离开发板的距离等各种因素的影响)。模拟输入函数的引用格式为:analogRead(pin);其中,参数pin表示用于读取数据的引脚,如“analogRead(A0);”,指读取A0引脚上的模拟信号值。2信
174、号输出函数在Arduino中,根据输出信号类型的不同,输出函数也分为数字输出函数和模拟输出函数两种。(1)数字输出函数digitalWrite()。数字输出函数的引用格式为:digitalWrite(pin,value);其中,参数pin表示用于输出数值的引脚;value的值只能为LOW(0)或HIGH(1)。例如,digitalWrite(11,0),指D11引脚输出低电平值。(2)模拟输出函数analogWrite()。模拟输出函数是通过PWM的方式在指定引脚上输出一个模拟量值。模拟输出函数的引用格式为:analogWrite(pin,value);其中,参数pin表示所要设置的引脚,只能
175、选择函数支持的引脚;参数value表示的值,是PWM输出的占空比,范围在0255之间。Arduino UNO开发板上可用作PWM的引脚包括D3、D5、D6、D9、D10和D11。例如,“analogWrite(3,255)”,表示D3引脚输出的模拟值255,即占空比是100%,指高电平占整个波形周期的时间为100%。analogWrite()函数较多地应用在LED亮度控制、电机转速控制等方面。探究活动阅 读在Arduino开发板中,采用PWM技术也能让数字引脚表示和输出模拟量。PWM是一种利用微处理器的数字输出来对模拟电路进行控制的技术,即使用数字信号达到一个模拟信号的效果。在数字电路里,只有
176、0和1两种状态。例如在实验中,LED亮,输出高电平,数字信号值为1;LED灭,输出低电平,数字信号值为0。而模拟电路的信号是连续的,如果想对其中的某个值进行控制,就需要使用PWM技术进行调制控制,21X1359.indd 842021/3/11 11:43:2385 854.1 开发板的I/O信号控制改变脉冲宽度来实现不同的效果。PWM的占空比,就是指高电平保持的时间与该PWM脉冲周期时间之比,如图4-4所示。如图4-5所示,一个绿色间隔表示一个脉冲周期,在此周期内,当高电平(1)持续时间占整个脉冲周期的25%时,就表示其占空比为25%,对应的模拟量输出值为63(25%255),依此类推。图4
177、-5 PWM模拟输出示意图当使用analogWrite()函数时,指定引脚会通过高低电平的不断转换来输出一个周期固定(约490 Hz)的方波,通过改变高低电平在每个周期所占的比例(占空比),而得到近似输出不同电压的效果,谓之调制输出值,因而并非真正意义上的模拟值。4.1.4 开发板串口使用1串口监视器由于Arduino IDE开发环境目前还不支持直接在板上进行调试的功能,一旦程序下载到板上运行,我们很难跟踪程序运行过程及某些中间数据。因此,在实际使用中,常利用串口监视器对程序的过程和数据进行调试和输出,以便快速判断程序运行状态。在Arduino IDE中,可通过执行菜单“工具”“串口监视器”查
178、看程序运行结果,如图4-6所示。图4-4 占空比21X1359.indd 852021/3/11 11:43:238686第四章 开源硬件项目输入输出组件及综合应用项目开发串口位于0(RX)和1(TX)两个引脚,Arduino的USB口通过一个转换芯片与这两个串口引脚相连接。当使用USB线将Arduino与计算机连接时,两者之间便建立了串口连接。通过此连接,Arduino便可与计算机进行串口通信。当进行串口通信时,串口通信指示灯将会闪烁,如图4-7所示。图4-7 Arduino开发板串口位置2串口函数(1)串口初始化函数Serial.begin()。在使用串口监视器前,要先使用Serial.b
179、egin()函数初始化Arduino串口,并确保通信双方使用相同的通信速率。串口初始化函数引用格式为:Serial.begin(speed);其中,参数speed指串口通信的速率,用“波特率”(Baud)描述,默认值为9600。其中,波特率是对信号传输速率的一种度量。(2)串口输出函数Serial.print()或Serial.println()。串口初始化完成后,便可以使用Serial.print()或Serial.println()函数进行数据的输出,具体引用格式分别为:Serial.print(val);和Serial.println(val);图4-6 串口监视器21X1359.ind
180、d 862021/3/11 11:43:2487 874.1 开发板的I/O信号控制其中,参数val是要输出的数据,各种类型的数据均可输出。两个函数的区别在于Serial.println()函数在输出数据后会自动换行,而Serial.print()函数不换行。因此,串口输出常见的程序片段是:void setup()Serial.begin(9600);/初始化串口,设置波特率void loop()Serial.print(hello world);/输出字符“hello world”(3)串口接收函数Serial.read()。串口不仅可以对外输出或发送数据,还可以接收或读取外界输入的数据。接
181、收串口数据,需使用串口接收函数Serial.read(),引用格式为:Serial.read();调用该语句时,每次都会返回1字节的数据,该返回值便是当前串口读到的数据。实 验以小组为单位,完成以下实验。实验:串口控制开关板载LED1实验目标:体验串口及输出函数的使用。2实验问题:如何向串口输入数据和读取串口输入的数据,如何控制LED的亮灭?3实验元器件清单如表4-2所示。表4-2 实验元器件清单元器件规格数量开发板Arduino UNO1块USB数据线USB-B1根4实验的文本程序代码示例如下所示。String item;/定义变量item,用于存储收到的串口字符串void setup()i
182、tem=;Serial.begin(9600);pinMode(13,OUTPUT);void loop()/主循环程序 if(Serial.available()0)/判断串口是否有数据21X1359.indd 872021/3/11 11:43:248888第四章 开源硬件项目输入输出组件及综合应用项目开发 item=Serial.readString();/收到的串口数据赋值给item if(item=on)/判断收到的数据是否为“on”digitalWrite(13,HIGH);/D13引脚为高电平 else digitalWrite(13,LOW);/D13引脚为低电平 连接计算机与
183、开发板,编写以上代码,并上传到开发板观察运行效果。实 践1根据表4-3所示元器件清单进行搭建,并编写程序,实现利用串口输入0255的数值来控制连接在D3(PWM引脚)LED的亮度。表4-3 元器件清单元器件规格数量开发板Arduino UNO1块USB数据线USB-B1根LED1个杜邦线公对母若干2尝试编写程序,实现输出人工通过串口输入的数字(0、1和2,分别代表锤子、剪刀、布)和Arduino UNO开发板随机生成的数字(0、1或2)的值和两者对比的结果,并设计表格记录游戏成绩。4.2 开源硬件项目的输入组件人们感知世界,必须借助感觉器官,电子设备要获取外部信息也通常借助它们的“感觉器官”传
184、感器。4.2.1 传感器1传感器传感器是一种检测元器件,能够感应到被测物理量或化学量等的信息,并能将感应到21X1359.indd 882021/3/11 11:43:2489 894.2 开源硬件项目的输入组件的信息,按一定规律转换成电信号输出,以满足信息的记录、储存、处理、传输与控制的要求。物理量或化学量等包括位移、速度、力、磁感应强度、温度、光、声、气体浓度等。因此,传感器也被称为“电五官”,它的存在和发展,让物体有了触觉、味觉和嗅觉等,让物体慢慢变得活起来,它与人类五大感觉器官的对比如表4-4所示。表4-4 传感器与人类五大感觉器官对比表传感器类型对应人类的感觉器官光敏传感器视觉声敏传
185、感器听觉气敏传感器嗅觉化学传感器味觉压敏、温敏、流体传感器触觉2传感器的分类随着信息技术的迅速发展和应用的普及,传感器数量众多,功能多样,有多种分类方法,如表4-5所示。表4-5 部分传感器列表分类依据传感器实现技术超声波传感器、红外传感器、温度传感器、湿度传感器、气体传感器、气体报警器、压力传感器、加速度传感器、紫外线传感器、磁敏传感器、磁阻传感器、图像传感器、电量传感器、位移传感器等。用途脉搏传感器、土壤水分传感器、压力传感器、光敏传感器、超声波测距传感器、温湿度传感器、温度传感器、pH传感器、流量传感器、液位传感器、浸水传感器、照度传感器、差压变送器、加速度传感器、位移传感器、称重传感器
186、、测距传感器等。一些常用的传感器如图4-8所示。图4-8 几种常见传感器21X1359.indd 892021/3/11 11:43:259090第四章 开源硬件项目输入输出组件及综合应用项目开发在具体应用中,我们要根据项目功能实施的需要,查阅相应传感器的资料和参数,选择合适的传感器进行开发实验。查 阅根据小组项目选题和项目规划,思考、查阅相关传感器的资料和参数,选择合适的传感器进行开发实验,遇到技术参数等疑问,相互交流与讨论。4.2.2 环境检测类传感器常见模块根据传感器的用途分类,进行环境检测的传感器在生活中经常被用于各种环境检测的装置,如烟雾传感器、温湿度传感器等。1烟雾传感器(1)认识
187、烟雾传感器。烟雾传感器是通过监测烟雾浓度来实现火灾防范的一类传感器。根据不同的传感原理,烟雾传感器可分为离子导电式、光电式、气敏电阻式、电化学式等不同种类。常见的消防报警系统中的烟雾报警器内部的核心元件就采用了离子式烟雾传感器,其性能远优于气敏电阻类的烟雾报警器。如图4-9所示是常用的MQ-2烟雾气敏传感器。(2)选择烟雾传感器。不同类型的传感器对不同气体、烟雾粒子有不同的敏感度,感应的效果也不同。所以,需要根据使用场所、粒子特点和敏感度要求选择合适的传感器。(3)烟雾传感器工作原理。以MQ-2烟雾气敏传感器为例,它同时具有数字信号输出口D0和模拟信号输出口A0。在通电工作后,可通过调节MQ-
188、2烟雾气敏传感器上的可调电阻,使得当待探测气体达到某个浓度时,D0数字信号输出口的电压被触发,并从低电平变成高电平。模拟信号输出口A0则一直输出一个与气体浓度同步变化并成比例的信号电压。MQ-2烟雾气敏传感器的基本参数如下:输入电压:DC5 V,功耗:150 mADO(数字)信号输出:数字信号0和1,电压为5 VAO(模拟)信号输出:0.10.3 V(相对无污染),最高浓度电压4 V左右调 查查阅资料,对比三类烟雾传感器的差异,填写表4-6。图4-9 MQ-2烟雾气敏传感器21X1359.indd 902021/3/11 11:43:2591 914.2 开源硬件项目的输入组件表4-6 三类烟
189、雾传感器的对比类别气体、烟雾粒子类型敏度使用场所代表性产品(图片)价格离 子 式 烟 雾传感器光 电 式 烟 雾传感器气 敏 式 烟 雾传感器2温湿度传感器(1)认识温湿度传感器。温湿度传感器是指能将温度量、湿度量转换成电信号的元器件或模块,是结合温湿度传感器及信号处理IC(集成电路)的感测模块。常见的温湿度传感器如图4-10所示。温度传感器常见的敏感元件是温敏电阻,也叫热敏电阻,它是由半导体材料烧结而成,是一种对温度敏感的元件,如图4-11所示。温度传感器的电阻值会随着温度的变化而变化。(2)选择温湿度传感器。根据功能需要,我们可以选择单独检测温度、湿度的传感器,也可以选择同时检测温湿度的集
190、成传感器。(3)温湿度传感器工作原理。以DHT11温湿度传感器为例,它只有一个数字信号输出口。在它通电工作后,内部信号处理电路将当前温度与湿度转变为单线串行传输的周期性高低电压变化信号,并从数字信号输出口输出。开发板接收DHT11温湿度传感器发出的一系列信号,按传输协议解码后,就能获得对应温度、湿度的数值。查 阅上网查找各种温度传感器的参数及价格等信息,并填入表4-7中。图4-10 常见温湿度传感器图4-11 温敏电阻实物图21X1359.indd 912021/3/11 11:43:259292第四章 开源硬件项目输入输出组件及综合应用项目开发表4-7 温度传感器选型对比名称测量范围误差率价
191、格实 验以小组为单位,完成以下实验。实验:温湿度传感器的使用1实验目标:利用DHT11温湿度传感器获取当前温湿度。2实验问题:DHT11温湿度传感器与开发板如何连接,如何通过串口打印出即时湿度与湿度?3实验元器件清单如表4-8所示。表4-8 实验元器件清单元器件名称规格数量开发板Arduino UNO1块USB数据线USB-B1根面包板400孔1块DHT11温湿度传感器1个杜邦线公对公若干4实验电路原理图如图4-12所示。5实验硬件电路搭建模拟图如图4-13所示。其中,DHT11温湿度传感器的负极连接图4-12 实验电路原理图21X1359.indd 922021/3/11 11:43:269
192、3 934.2 开源硬件项目的输入组件开发板的GND引脚,正极连接到5 V引脚,DAT连接D2引脚。6实验的Mixly图形化程序示例如图4-14所示。实验的文本程序代码示例如下所示。#include dht myDHT_2;int dht_2_gettemperature()int chk=myDHT_2.read11(2);int value=myDHT_2.temperature;return value;int dht_2_gethumidity()int chk=myDHT_2.read11(2);int value=myDHT_2.humidity;return value;void
193、 setup()Serial.begin(9600);图4-13 实验硬件电路搭建模拟图图4-14 Mixly图形化程序示例21X1359.indd 932021/3/11 11:43:279494第四章 开源硬件项目输入输出组件及综合应用项目开发void loop()Serial.println(String(temperature:)+String(dht_2_gettemperature();Serial.println(String(Humidity:)+String(dht_2_gethumidity();delay(1000);实 践1使用3个以上DHT11温湿度传感器,编写程序,
194、测试它们数据的一致性,并使用它们测量学校不同区域的温湿度情况。2使用3个DS18B20不锈钢封装防水型探头,制作一个装置,编写程序,实现监测一杯开水从高温降到室温的变化过程,并设计表格进行数据记录,将记录的数据用可视化方式呈现出来。4.2.3 物理测量类传感器常见模块1超声波测距传感器(1)认识超声波测距传感器。超声波是振动频率高于20 kHz的机械波,具有频率高、波长短、绕射现象小等特点,特别是它的方向性好、能够成为射线而定向传播。超声波传感器是利用超声波特性,将待测的非声学量转换为电信号的一类传感器。它以超声波为介质对被检测物进行远距离、非接触式的无损检测,可采用回波探测的检测模式。超声波
195、传感器的发声模块向前方发出超声波信号,在遇到障碍物后部分被反射,并被传感器的接收器所接收。这样传感器就能感知被测物的某些信息。超声波传感器对透明或有色物体,金属或非金属物体,固体、液体、粉状物质等均能检测。其检测性能几乎不受任何环境条件的影响,包括烟尘环境和雨天。此外,测量回波反射所经历的时间,可以间接测量障碍物的物理距离,此种超声波传感器也称为超声波测距传感器。(2)选择超声波测距传感器。超声波测距传感器的频率相对稳定。选择超声波测距传感器,首先要考虑用途,例如测厚度、探伤、B超等。其次需要考虑超声波测距传感器的测距极限、灵敏程度等。如图4-15所示为常见的超声波测距传感器,型号为HC-SR
196、04。(3)超声波测距传感器工作原理。以HC-SR04超声波测距传感器为例,它有一个数字信号输出口ECHO和一个数字信号输入口TRIG。在它通电工作后,两个信号端口的电压都为0。当超声波测距传感器HC-SR04从TRIG输入口获得一个高电平短时脉冲后,传感器内部电路会被启动,并向外发送图4-15 HC-SR04超声波测距传感器21X1359.indd 942021/3/11 11:43:2795 954.2 开源硬件项目的输入组件若干个超声波脉冲信号,同时启动计时电路。超声波测距传感器接收到第一个超声波回声信号时,关闭计时电路,然后内部电路会将声波传输时间转化为数字输出口ECHO上的高电平电压
197、的持续时长。当开发板对这个高电平时长进行计时测量后,结合声速常数和转换公式就能获得与当前障碍物之间的距离数值。调 查上网调查不同超声波测距传感器模块型号、测距范围、价格等信息,填入表4-9中。表4-9 超声波测距传感器选型对比用途模块型号价格测距范围外观图片2加速度传感器(1)认识加速度传感器。加速度传感器是一种能够测量加速度大小的传感器。当传感器静止在地球表面时,传感器数值大小等于重力加速度在某个方向上的分量。当传感器随物体运动时,传感器所测得的加速度值则是物体运动的加速度。按测量维度来分,加速度传感器可分为测量某个方向加速度的单轴加速度传感器和同时测量X、Y、Z轴加速度的三轴加速度传感器。
198、加速度传感器通常由质量块、阻尼器、弹性元件、敏感元件和信号处理电路等部分组成。如图4-16所示是型号为ADXL345的集成三轴加速度传感器。(2)选择加速度传感器。首先要根据用途来选择加速度传感器,例如游戏控制、汽车安全气囊、计步器等的不同应用要考虑选择不同的加速度传感器;其次要根据在应用中加速度值的变化范围进行选择。(3)加速度传感器工作原理。以ADXL345加速度传感器为例,它是一个高集成度的数字传感器,有两个相互配合使用的数字信号输出口。在它通电工作后,内部信号处理电路将当前X、Y、Z方向的加速度大小转变为双线串行传输周期性高低电压变化信号,从两个数字信号输出口输出。开发板接收从ADXL
199、345加速度传感器输出的信号并按传输协议解码后,就能获得三个方向对应的加速度数值。其他型号加速度传感器可能会有1个或多个模拟信号输出端口,分别输出某个方向或各个方向与加速度成比例变化的电压数值。查 阅上网查阅加速度传感器可应用于哪些装置,用于检测什么,模块型号及价格等信息,填入表4-10中。图4-16 ADXL345加速度传感器21X1359.indd 952021/3/11 11:43:289696第四章 开源硬件项目输入输出组件及综合应用项目开发表4-10 加速度传感器选型对比模块型号检测功能与测量范围型号价格实 验以小组为单位,完成以下实验。实验:获取加速度传感器数值1实验目标:通过串口
200、获取加速度传感器的数值。2实验问题:加速度传感器与开发板如何连接?如何通过串口打印获取加速度传感器的数值?3实验元器件清单如表4-11所示。表4-11 实验元器件清单元器件名称规格数量开发板Arduino UNO1块USB数据线USB-B1根加速度传感器ADXL3451个杜邦线公对公若干4实验电路原理图如图4-17所示。图4-17 实验电路原理图21X1359.indd 962021/3/11 11:43:2997 974.2 开源硬件项目的输入组件5实验硬件电路搭建模拟图如图4-18所示。其中,ADXL345加速度传感器的VCC接开发板上的5 V引脚,GND接开发板上的GND引脚,SCL接A
201、5引脚,SDA接A4引脚。6实验的文本程序代码示例如下所示。#include Wire.h#include I2Cdev.h#include ADXL345.hADXL345 accel;int 16_t ax,ay,az;void setup()Wire.begin();Serial.begin(38400);Serial.println(Initializing I2C devices.);accel.initialize();Serial.println(Testing device connections.);Serial.println(accel.testConnection()?
202、ADXL345 connection successful:ADXL345 connection failed);void loop()accel.getAcceleration(&ax,&ay,&az);Serial.print(x:t);Serial.println(ax);delay(50);实 践1编写程序,测试与研究ADXL345在运动时,X轴、Y轴、Z轴之间的数值变化及其图4-18 实验硬件电路搭建模拟图21X1359.indd 972021/3/11 11:43:309898第四章 开源硬件项目输入输出组件及综合应用项目开发关系,并做成数据图表反映出来。2编写程序,使用同一套装置
203、,编写程序代码进行实验测试,研究不同重量的物体在相同的位置做自由落体运动时,加速度是否一致。项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,开展使用传感器的硬件搭建和编程实验。1观察、体验所用传感器的引脚及与开发板的搭建连接方法。2对照项目作品电路图及组件组成,了解所用传感器作为输入组件采集的数据类型,知道传感器的工作原理。3体验并熟悉驱动所用传感器的图形化编程及程序代码指令,理解开发板控制传感电路和处理输入数据的运算转换过程。4.3 开源硬件项目的输出组件在开源硬件项目的输入输出系统中,由输出组件实现系统控制的输出信号,包括声、光、电及驱动信号等,由输入组件进行环境数据的采集,
204、实现人机交互的环境感知任务。其中,输出组件有执行器组件和显示组件。4.3.1 执行器组件常见模块执行器是自动化控制系统中接收控制信号并对受控对象施加控制运行作用的装置。在开源硬件项目中,按照执行输出信号与环境交互的信号特征,执行器分成发声、发光和驱动三类。常用发声的执行器有蜂鸣器和扬声器,常用发光的执行器有LED等,常用驱动的执行器有舵机、伺服机、直流电机等。1蜂鸣器(1)认识蜂鸣器。蜂鸣器也叫压电式扬声器,是一种一体化结构的电子发声器件,广泛应用于计算机、报警器和电子玩具等电子设备中。蜂鸣器按其驱动方式的不同可分为无源蜂鸣器和有源蜂鸣器。有源蜂鸣器中含有振荡源,采用直流电压供电,只要加上额定
205、的电流、电源就可以蜂鸣,但只能发出一种固定频率的声音。无源蜂鸣器不含振荡源,需要一定的方波信号驱动,可以发出不同频率的声21X1359.indd 982021/3/11 11:43:3099 994.3 开源硬件项目的输出组件音,声音清脆。蜂鸣器的外观如图4-19所示,在电路图中的图形符号如图4-20所示。蜂鸣器在电路中用字母“H”或“HA”表示。(2)选择蜂鸣器。蜂鸣器的种类规格繁多,需要知道的参数包括音压、频率、电压、电流、驱动方式、尺寸、连接/固定方式等。其中,声音的音压大小、频率高低是最为关键的参数。(3)蜂鸣器工作原理。若蜂鸣器为无源蜂鸣器,那它只有一个数字信号输入口,同时也是电源接
206、口。当接收到开发板上某个数字输出端口向它输入的某个频率的高低变化电压时,蜂鸣器将会驱动内部压电陶瓷发出该频率的声音。若蜂鸣器为有源蜂鸣器,那它只有电源接口而没有信号输入口,且内部自带一个固定频率的振荡器,当接通电源后就能发出这个频率的声音。开源硬件项目开发选择蜂鸣器时要考虑工作电压、外观尺寸等基本参数,要根据制作项目的情境功能需要,查阅蜂鸣器的参数,选择合适的种类和规格。例如图4-19所示的蜂鸣器是无源蜂鸣器,它的基本参数是:工作电压:35.5 V外观尺寸:直径12 mm,高度9.6 mm探究活动查 阅1在网上查阅蜂鸣器的资料,了解其基本知识,并了解有源和无源蜂鸣器的区别。2在网上查阅扬声器的
207、资料,了解其基本知识,了解其与蜂鸣器的区别。2舵机(1)认识舵机。舵机是一种带有角度反馈的、简化的自动受控电机,可以精确控制并保持角度,常用于需要角度不断变化并可保持的控制系统,如图4-21所示。(2)选择舵机。为了适应不同的工作环境,舵机有防水及防尘的设计;图4-19 无源蜂鸣器图4-20 蜂鸣器在电路图中的图形符号图4-21 SG90舵机21X1359.indd 992021/3/11 11:43:30100100第四章 开源硬件项目输入输出组件及综合应用项目开发为了承担不同的负载需求,舵机的齿轮有塑胶及金属之分。金属齿轮的舵机一般皆为大扭力及高速型,具有齿轮不会因负载过大而崩牙的优点。较
208、高级的舵机会安装滚珠轴承,使其转动时能更轻快精准。(3)舵机工作原理。以SG90舵机为例,它只有一个数字信号输入口。当接收到开发板上的某个数字输出端口向它输入周期性高低变化的电压时,SG90舵机中的控制电路就会按照高电平的持续时间控制并保持舵机转盘在与时长对应的角度上。这个高电平时长范围通常在0.5毫秒到2.5毫秒之间。在开源硬件项目开发中,选择舵机时要考虑工作电压、转角角度、扭矩等基本参数。例如,图4-10所示舵机的基本参数是:型号:SG90工作电压:3.56 V转角角度:180工作扭矩:1.6 kg/cm调 查在网上调查舵机的资料,了解其基本知识和使用的领域。实 验以小组为单位,完成以下实
209、验。实验:舵机的使用与转动控制1实验目标:编写程序转动舵机。2实验问题:舵机转动的角度控制跟哪个指令参数有关?3实验元器件清单如表4-12所示。表4-12 实验元器件清单元器件规格数量开发板Arduino UNO1块USB数据线USB-B1根舵机SG901个杜邦线公对公若干21X1359.indd 1002021/3/11 11:43:301011014.3 开源硬件项目的输出组件4实验电路原理图如图4-22所示。5实验硬件电路搭建模拟图如图4-23所示。其中,舵机的负极(黑色线)连接开发板的GND引脚,正极(红色线)连接到5 V引脚,信号线(黄色线)连接D3引脚。6实验的Mixly图形化程序
210、示例如图4-24所示。图4-22 实验电路原理图图4-23 实验硬件电路搭建模拟图图4-24 Mixly图形化程序示例21X1359.indd 1012021/3/11 11:43:32102102第四章 开源硬件项目输入输出组件及综合应用项目开发实验的文本程序代码示例如下所示。#include Servo servo_3;void setup()servo_3.attach(3);void loop()servo_3.write(0);delay(500);servo_3.write(180);delay(500);实 践1编写程序,实现舵机每间隔一秒转动10,并在10170之间来回转动。2
211、编写程序,实现舵机来回转动,且每分钟来回转动30次。4.3.2 显示组件常见模块1液晶显示模块(1)认识液晶显示模块。液晶显示屏(Liquid Crystal Display,LCD),是平面显示器的一种。液晶显示屏的两片光学偏振片之间含有特殊的液晶材料。这种材料具有流动性,并且透明度和颜色会随电压、磁场等外界条件变化而变化。基于液晶材料本身不发光但能改变透光程度的特性,一个实用的液晶显示屏模块通常由LED发光底板、液晶显示屏、控制电路板和外框组成。液晶显示模块分成“字段型”和“点阵型”两种。字段型显示屏只能显示特定的数字和符号,通常用于电话机、计算器等。而点阵型显示屏可以显示任意文本和图像。
212、手机、电视和电脑屏幕的液晶屏就属于点阵型显示屏。(2)选择液晶显示模块。液晶显示模块(LCD)的规格和型号很多,需要根据显示符号的类型、显示角度、体积等的参数来决定。常用的开源硬件项目选择的液晶显示模块为LCD1602,如图4-25所示。LCD1602是一款通用简易液晶,应用非常广泛,共有16个引脚,其显示范围为162,可以显示2行,每行16个字符,显示内容包括ASCII码的英文字母、数字和标点符号,但不能直接显示中文。21X1359.indd 1022021/3/11 11:43:321031034.3 开源硬件项目的输出组件(3)液晶显示模块工作原理。以LCD1602液晶显示模块为例,它通
213、过内部电路解析外部发送的控制命令,从而控制液晶面板上电极的电压高低变化,再利用液晶在不同电压下透光性的差异来显示字符的外形。该模块包含了若干个输入输出控制端口和一个8位的输入输出数据端口。LCD1602液晶显示模块通电以后,开发板可先通过向控制端口发送控制所需的高或低电压信号以确定模块的工作状态,然后通过8位数据端口向模块发送控制命令或从模块读取数据信息。2LED点阵屏(1)认识LED点阵屏。LED点阵屏是一种把数十个LED排列封装在一个方形模块的显示单元,常见有57和88点阵屏。如图4-26所示是88 LED点阵屏。LED点阵屏常应用于动态广告招牌,显示流水灯文字或图案,例如十字路口的动态小
214、绿人信号灯的图案。(2)选择88 LED点阵。按颜色分,LED点阵屏模块有单色、双色和三色,其中红蓝绿三色可调出全部色彩。色彩越多,引脚越多,控制方式越复杂。按亮度分,LED点阵屏可分成普通亮度和高亮度两类。按连接方式,LED点阵屏可分成共阳极和共阴极两种。可见,我们也能依据此电路用数十个单一的LED组装成矩阵。(3)LED点阵屏工作原理。以88 LED点阵屏为例,点阵屏中LED以行编组,分别由8个行控制端口控制该行LED的正极;同时也以列编组,分别由8个列控制端口控制该列LED的负极。当开发板向点阵屏输出的行列控制电压让某个LED满足“行正列负“的电压要求时,该LED就能被点亮,否则LED熄
215、灭。一些附带驱动信号发生器的点阵屏,能在接收开发板发来的控制命令后,自动解码生成相应的行列驱动电压。调 查各小组分别就某种显示组件进行探究,查阅资料,了解对应组件的相关参数、使用方法及使用场景,填写表4-13,并根据调查结果选择并设计一个合适的趣味项目实验。图4-25 LCD1602图4-26 88 LED点阵屏21X1359.indd 1032021/3/11 11:43:33104104第四章 开源硬件项目输入输出组件及综合应用项目开发表4-13 显示组件的调查小组成员显示组件名称参数使用方法小结:优缺点(包括易用程度、价格、显示效果等)实 验以小组为单位,完成以下实验。实验:点亮8x8L
216、ED点阵屏矩阵1实验目标:在Mixly里导入LED点阵(Max7219)扩展库;使用88点阵显示汉字。2实验问题:矩阵引脚如何连接开发板引脚?什么是扩展库?如何使用?3实验元器件清单如表4-14所示。表4-14 实验元器件清单元器件名称规格数量开发板Arduino UNO1块USB数据线USB-B1根88 LEDMax72191个杜邦线公对母若干4实验电路原理图如图4-27所示。5实验硬件电路搭建模拟图如图4-28所示。其中,88 LED的负极连接开发板的GND引脚,正极连接5 V引脚,DIN连接D9引脚,CS连接D10引脚,CLK连接D11引脚。图4-27 实验电路原理图21X1359.in
217、dd 1042021/3/11 11:43:331051054.3 开源硬件项目的输出组件6实验的Mixly图形化程序示例如图4-29所示。实 践(1)利用88 LED的功能,设计并编写程序,实现88 LED显示不同表情包图形。(2)利用88 LED的功能,设计并编写程序,实现88 LED显示“我是创客”“中国芯”等文字,并可以循环显示。项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,开展使用执行器、显示屏等输出组件的硬件搭建和编程实验。图4-28 实验硬件电路搭建模拟图图4-29 Mixly图形化程序示例21X1359.indd 1052021/3/11 11:43:35106
218、106第四章 开源硬件项目输入输出组件及综合应用项目开发1观察、体验所用执行器、显示屏等的引脚及与开发板的搭建连接方法。2对照项目作品电路图及组件组成,了解所用执行器、显示组件输出的数据类型,知道所用执行器、显示组件的工作原理。3体验并熟悉驱动所用执行器、显示组件的图形化编程及程序代码指令,理解开发板控制输出电路和处理输出数据为声、光、驱动信号的运算转换过程。4.4 综合应用项目开发同学们大部分时间都是在教室中度过的,教室中的空气质量如何,将影响到老师和同学们的身体健康。在国家环保部门发布的空气质量指数中,包含了PM2.5、二氧化硫、一氧化碳等多个指标。我们仅以监测空气中的颗粒物状况为例,制作
219、一个简易的教室空气质量监测系统实验装置,并介绍综合应用项目的开发过程。4.4.1 教室空气质量监测仪项目的创意策划1项目背景知识查阅颗粒物(Particulate Matter,缩写为PM),泛指悬浮在空气中的固体颗粒或液滴。其中,直径小于或等于2.5微米的颗粒物称为细颗粒物(PM2.5),例如室内的二手烟雾。颗粒物能够在大气中停留很长时间,并可随呼吸进入体内,积聚在气管或肺中,影响身体健康,其在空气中含量浓度越高,就代表空气污染越严重。虽然PM2.5只是地球大气成分中含量很少的组分,但它对空气质量和能见度等有重要影响。与较粗的大气颗粒物相比,PM2.5粒径小,面积大,活性强,易附带有毒、有害
220、物质(如重金属、微生物等),且在大气中的停留时间长、输送距离远,因而对人体健康和大气环境质量的影响更大。探究活动查 阅PM2.5是我国环境空气污染物基本检测项目之一,登录环保部门网站查询和了解我国环境空气的功能分类、标准分级、污染物项目、监测方法等相关内容。交 流与小组其他同学交流、讨论生活中哪些地方或场所PM2.5的值有可能超标。21X1359.indd 1062021/3/11 11:43:351071074.4 综合应用项目开发2项目设计调研与分析在项目开发之前,我们都需要做项目调研与分析,并经历以下过程:从生活场景中感受现象从现象发现问题从问题中萌发想法将想法转化为要做的事情要做的事情
221、具体是怎样的。真正的项目开发,要反复在场景现场做调研和思考,思考路径如下:(1)我们生活场景中的现象:老师和同学们每一天有8个小时甚至超过8个小时待在教室内,我们呼吸着教室里的空气,空气中充满了灰尘、粉笔尘。我们不得不呼吸着这些空气,这些空气会影响我们的身体健康吗?(2)现象中的问题:究竟我们每天所处教室环境的空气质量是否达标或优质呢?(3)问题中的想法:我们如何能知道所呼吸空气的质量情况,用什么装置检测呢?(4)要做的事情:设计和制作一个能检测空气质量的装置基于开源硬件的空气质量监测仪。这个空气质量监测仪是怎样的呢?我们对其进行设计与制作的创意策划,具体如图4-30所示。图4-30 教室空气
222、质量监测仪项目的创意策划21X1359.indd 1072021/3/11 11:43:46108108第四章 开源硬件项目输入输出组件及综合应用项目开发我们对项目的电路原型做设计与制作,实验测试和运行成功后,还可以为其制作合适美观的外观盒子,完成既实用又有创意的装置,实现对教室空气质量的监测。4.4.2 教室空气质量监测仪项目的技术方案设计1需求分析和问题识别根据教室空气质量监测仪项目的创意策划,进行需求分析和问题识别,如表4-15所示。表4-15 教室空气质量监测仪项目需求分析与问题识别框架功能情境问题识别和分解问题梳理与合并核心功能:当空气中的灰尘粒子浓度达到一定阈值时,能够被传感器检测
223、到并显示出相应的数值。需要能够感知空气中灰尘粒子的组件。当粒子浓度达到一定值时,触发敏感元件采集到相应数值,然后通过程序处理将数据读取出来,再将数据转换成可显示的数值文本显示出来。是否有一种能够感知不同灰尘粒子或气体粒子的敏感组件,还是一种敏感组件只能感知一种气体粒子。测 量 灰 尘 或 气 体 粒子 浓 度 强 弱 阈 值 的 触发范围。有多种颜色的LED可供驱动。有发声组件发出警报声。多功能创意:当空气中的不同灰尘粒子或气体粒子浓度达到一定阈值时,都能够被传感器检测到,并显示出相应的数值,用不同颜色表示程度等级,严重时发出警报。需要能够感知空气中不同灰尘或气体粒子的组件。当粒子浓度达到一定
224、值时,触发敏感元件采集到相应数值,然后通过程序处理将数据读取出来,再将数据转换成可显示的数值文本显示出来;驱动不同颜色的LED分级表示污染程度;当超过某个数值时,发出鸣叫警报。2功能实现分析和组件选择查阅资料,判断分析,形成教室空气质量监测仪项目功能实现对应表,如表4-16所示。表4-16 教室空气质量监测仪项目功能实现对应表功能需求分析选型分析实现分析是否有一种能够感知不同灰尘粒子或气体粒子的敏感组件,还是一种敏感组件只能感知一种气体粒子。测量灰尘或气体粒子浓度强弱阈值的触发范围。有多种颜色的LED可供驱动。有发声组件发出警报声。一种传感器只能检测一类粒子,该项目需要用到具有检测灰尘功能的灰
225、尘粒子传感器。灰尘传感器工作电压与工作电流。在电路中需要的固定电阻和电容,要计算其电阻值和电容值。该灰尘传感器检测浓度的数值范围。显示屏显示数据的驱动方式。全彩LED的颜色显示驱动。蜂鸣器鸣叫。检测到的灰尘粒子浓度的数值能够在显示屏上显示出数据。选用全彩LED,根据感知的粒子浓度数值范围,分别能显示绿色、黄色、橘红色、亮红色四个颜色。当感知的粒子浓度达到某个数值范围时,发声装置发出警报声。3元器件选型在本项目中,检测灰尘粒子的传感器是关键器件,属于环境检测类传感器。为确定项目关键器件的选型,我们需要查阅和对比PM检测传感器的资料。21X1359.indd 1082021/3/11 11:43:
226、461091094.4 综合应用项目开发(1)查阅资料选择检测PM值的传感器。民用检测PM值的传感器即灰尘检测传感器,主要有激光灰尘传感器和红外灰尘传感器两种。激光灰尘传感器又称粉尘传感器,主要采用激光散射原理获取灰尘中颗粒物的直径和浓度等值。激光照射通过检测位置的颗粒物时会产生微弱的光散射,而特定方向上的光散射波形与颗粒直径有关,可以通过不同粒径的波形分类统计及换算公式得到不同粒径颗粒物的实时浓度。如图4-31所示是SDS021激光灰尘传感器。图4-31 SDS021激光灰尘传感器红外灰尘传感器又称红外粉尘传感器,其结构、电路与气流进出风口设计简单,采用红外LED光源,利用电阻加热推动气流流
227、动获取采样空气,且只输出PWM值。如图4-32所示是GP2Y10红外灰尘传感器。图4-32 GP2Y10红外灰尘传感器21X1359.indd 1092021/3/11 11:43:47110110第四章 开源硬件项目输入输出组件及综合应用项目开发实 践上网查找灰尘检测传感器的相关内容,推荐一款适合开源硬件项目制作的传感器型号,并将相关内容填入表4-17中。表4-17 灰尘传感器选择比较表传感器类型成本型号/参数是否推荐(2)查阅资料选择其他制作器件。教室空气质量监测仪项目元器件清单如表4-18所示。表4-18 教室空气质量监测仪项目元器件清单元器件规格数量开发板Arduino UNO1块红外
228、灰尘传感器GP2Y101个USB数据线USB-B1根面包板400孔1块液晶显示屏LCD16021个温湿度传感器DHT111个电阻10 k1个电阻150 1个电阻220 3个电解电容220 F1个全彩灯RGB1个4技术方案设计根据开发小组的规划,教室空气质量监测仪项目开发技术方案书具体如下所示。教室空气质量监测仪项目开发技术方案书教室空气质量监测仪项目的技术原理是利用灰尘传感器、温湿度传感器采集教室现场数据,持续监测室内的PM2.5灰尘粒子浓度、温度、湿度等空气质量与舒适度指标,并通过开发板向显示屏输出实时数据;然后开发板通过将采集指标与内部程21X1359.indd 1102021/3/11
229、11:43:471111114.4 综合应用项目开发序设定的指标控制范围进行比对。当空气达到污染程度时,开发板向发光二极管、蜂鸣器或者显示屏等输出模块发送报警控制信号或信息。根据开发小组的规划,教室空气质量监测仪项目开发技术方案书具体如下所示。一、项目名称基于开源硬件的教室空气质量监测仪。二、项目描述项目背景:学校周边环境空气质量不佳,想监测教室里的空气质量是否达标。使用人群:教室师生。功能定位:检测教室内空气PM2.5灰尘粒子浓度。情境创意:当空气中的粒子浓度值产生较大变化时,不同的范围值对应显示不同颜色的指示灯,污染严重时发出警报声。要解决的问题:用什么传感器,传感器的敏感度如何,价格成本
230、如何,不同浓度的阈值范围如何检测,用什么颜色表示,达到什么值时发出警报声。三、项目合作与分工项目负责人:成员:、分工:硬件搭建、,程序设计、四、开发进度管理项目选题与创意策划阶段:月日月日项目开发技术方案设计阶段:月日月日项目开发实验与测试阶段:月日月日五、实现方案1硬件搭建。(1)电路原理图如图4-33和图4-34所示。图4-33 GP2Y10灰尘传感器与开发板连接的电路原理图21X1359.indd 1112021/3/11 11:43:47112112第四章 开源硬件项目输入输出组件及综合应用项目开发(2)电路搭建模拟图如图4-35所示,各硬件的接线方式如表4-19所示。图4-34 教室
231、空气质量监测仪项目的电路原理图图4-35 教室空气质量监测仪项目的电路搭建模拟图21X1359.indd 1122021/3/11 11:43:481131134.4 综合应用项目开发表4-19 教室空气质量监测仪项目各硬件连线方式元器件Arduino板元器件Arduino板DHT11温湿度传感嚣OUTDLCD 1602液晶显示屏VSSGNDVCC5 VVCC5 VGNDGNDVOGNDRGB全彩灯GNDGNDRSD12RD9RWGNDGD10ED7BD11D4D5GP2Y10红外灰尘传感器脚1、65 VD5D4脚2、4GNDD6D3脚3D6D7D2脚5A1A5 VKGND2教室空气质量监测仪
232、项目的程序设计流程图如图4-36所示。图4-36 教室空气质量监测仪项目的程序设计流程图21X1359.indd 1132021/3/11 11:43:49114114第四章 开源硬件项目输入输出组件及综合应用项目开发4.4.3 教室空气质量监测仪项目的程序设计教室空气质量监测仪项目代码编程参考程序如下:(1)引用库函数。#include/引用 LiquidCrystal LibraryLiquidCrystal lcd(12,7,5,4,3,2);/定义管脚#include dht myDHT_8;(2)定义温湿度传感器获取温度和湿度函数。int dht_8_gettemperature()
233、int chk=myDHT_8.read11(8);int value=myDHT_8.temperature;return value;int dht_8_gethumidity()int chk=myDHT_8.read11(8);int value=myDHT_8.humidity;return value;(3)定义项目变量。int measurePin=A1;/GP2Y10输出端口连接A1引脚int ledPower=6;/GP2Y10的LED端口连接6引脚int samplingTime=280;int deltaTime=40;int sleepTime=9680;float v
234、oMeasured=0;float calcVoltage=0;float dustDensity=0;21X1359.indd 1142021/3/11 11:43:491151154.4 综合应用项目开发(4)初始化设置。void setup()Serial.begin(9600);pinMode(ledPower,OUTPUT);lcd.print(welcome!);pinMode(9,OUTPUT);pinMode(10,OUTPUT);pinMode(11,OUTPUT);(5)打开GP2Y10红外灰尘传感器上的LED,并获取PM2.5的信号值。digitalWrite(ledPo
235、wer,LOW);/打开GP2Y10的LED delayMicroseconds(samplingTime);voMeasured=analogRead(measurePin);/读取数值 delayMicroseconds(deltaTime);digitalWrite(ledPower,HIGH);/关闭GP2Y10的LED delayMicroseconds(sleepTime);(6)对获取的信号值进行转换。calcVoltage=voMeasured*(5.0/1024.0);dustDensity=0.17*calcVoltage-0.1;/单位:mg/m3 dustDensity
236、=dustDensity*1000;/将单位由mg/m3转换为ug/m3(7)设置1602液晶显示屏第1行显示“temp:”+温度,第2行显示“humi:”+湿度,2秒后清屏。/输出数据lcd.clear();/清屏digitalWrite(9,LOW);digitalWrite(10,LOW);digitalWrite(11,LOW);/关灯lcd.setCursor(0,0);/定义位置,第1列第1行lcd.print(temp:);lcd.setCursor(7,0);21X1359.indd 1152021/3/11 11:43:49116116第四章 开源硬件项目输入输出组件及综合应
237、用项目开发lcd.setCursor(0,1);/定义位置,第1列第2行lcd.print(humi:);lcd.setCursor(7,0);lcd.print(dht_8_gethumidity();delay(2000);lcd.clear();(8)设置LCD第1行显示“Dust Density:”,第2行显示PM2.5的值。lcd.setCursor(0,0);/定义位置,第1列第1行 lcd.print(Dust Density:);lcd.setCursor(0,1);/定义位置,第1列第2行 lcd.print(dustDensity);(9)设置若PM2.5的值大于0.5,亮
238、红灯;否则,亮绿灯。if(dustDensity 0.5)digitalWrite(9,HIGH);/亮红灯 digitalWrite(10,LOW);digitalWrite(11,LOW);else digitalWrite(9,LOW);digitalWrite(10,HIGH);/亮绿灯 digitalWrite(11,LOW);思 考如果要检测甲醛等特殊气体浓度,可更换选用哪种传感器?电路应怎样调整或变化?4.4.4 教室空气质量监测仪项目的调试和运行1调试正确连接本实验的所有元器件,将上述程序上传到Arduino开发板上,运行程序,测试预设的功能是否实现。21X1359.indd
239、1162021/3/11 11:43:491171174.4 综合应用项目开发如果出现问题,还需要根据问题现象,对硬件连接进行检查及对软硬件进行联合调试。2运行程序运行反复测试成功后,可将装置拿到不同教室实地检测空气质量情况,并长时间运行,多次反复记录相应的数据,横向对比各小组数据,或纵向对比不同时间段、不同日期检测记录的数据。实 践1记录教室空气质量监测仪运行输出的数据,并连同其他小组的实验数据一起整理填入表4-20中。表4-20 教室空气质量数据记录表 日期:组别:时间输出数据2整理各小组的数据,比较并检查所得数据的有效性和准确性,对所采集的数据进行简要分析,完成表4-21。表4-21 教
240、室空气质量数据分析表采集数据是否超标可能来源或原因 讨 论1根据项目装置的实际运行情况及数据分析,总结教室空气质量存在的问题,并提出相应的解决方法。教室空气质量存在的问题:解决方法:21X1359.indd 1172021/3/11 11:43:50118118第四章 开源硬件项目输入输出组件及综合应用项目开发 2上网查找空气质量问题及相关解决方法等信息,在全班交流讨论解决空气污染问题或落实环境保护的具体措施。项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,进一步探究创意设计与项目系统运算调控的实现的关系,反复调试、完善设计方案,并参照项目范例的样式,撰写相应的项目成果报告。成果
241、交流各小组运用数字化学习工具,将所完成的项目成果,在小组或班级上进行展示与交流,共享创造、分享快乐。活动评价各小组根据项目选题、拟订的项目方案、实施情况及所形成的项目成果,利用教科书附录2的“项目活动评价表”,开展项目学习活动评价。21X1359.indd 1182021/3/11 11:43:50119119本章扼要回顾本章扼要回顾同学们通过本章学习,根据“开源硬件项目输入输出组件及综合应用项目开发”知识结构图,扼要回顾、总结、归纳学过的内容,建立自己的知识结构体系。回顾与总结21X1359.indd 1192021/3/11 11:43:52120120第四章 开源硬件项目输入输出组件及综
242、合应用项目开发本章学业评价同学们完成下列测试题(更多的测试题可以在教科书的配套学习资源包中查看),并通过“本章扼要回顾”以及本章的项目活动评价,综合评价自己在信息技术知识与技能、解决实际问题的过程与方法,以及相关情感态度与价值观的形成等方面,是否达到了本章的学习目标。1单选题(1)PWM是脉冲宽度调制技术的缩写,是一种利用微处理器的()输出来对()电路进行控制的技术。A模拟 数字 B数字 模拟 C函数 模拟 D函数 数字(2)在Arduino中,根据输出数据类型的不同,输出函数可分为()两种。A模拟数据读取函数和数字数据读取函数 B模拟函数和数字函数C串口函数和数据输出函数D模拟输出函数和数字
243、输出函数(3)在开源硬件项目的输入输出组件应用中,不是物理检测类传感器的是()。A超声波传感器 B加速度传感器 C压力传感器 D灰尘传感器2思考题教室空气质量监测仪和市场销售的空气质量监测仪的主要区别是什么?3情境题炎炎夏日,早上清凉,午后闷热,午夜后又逐渐清凉。一会儿热一会儿凉,我们不时得手动调节风扇的风力大小,非常不方便。为解决这个问题,请同学们设计一个自动感温调速的创意风扇,让它懂得根据外界温度自动调节风扇的转速等,并完成以下任务。(1)根据自己的构思绘画出项目作品创意策划的思维导图。(2)开展项目实验,完成项目作品的搭建和编程。(3)参照项目范例,制作项目作品分享报告。21X1359.
244、indd 1202021/3/11 11:43:521211214.4 综合应用项目开发一直以来,知识对社会经济增长都有着重要作用。工农业时代,利用知识创造出的各种各样工具,成为物质生产的重要资源。而到了知识经济时代,知识以及创造知识的方法成为经济发展的主要资源。借助信息技术,知识可以在人与人之间快速传播分享,促进知识的迭代更新。借助智能控制和制造技术,知识更新与物质创造密切联系在一起。借助凝集了大众智慧的开源智能硬件模块,每个人都可以开发创意硬件项目,并通过互联网进行分享,回馈社会。这体现了新经济环境下“大众创业,万众创新”的一些典型特征。由此看来,无论对于个体还是社会来说,尊重知识、分享知
245、识都是促进自身不断进步、推动环境不断改善的内在要求。本章将通过“开源硬件项目的开源许可证与知识分享”项目,进行自主、协作、探究项目学习,让同学们在学习中完善项目作品的设计方案,践行开源与知识分享的精神,理解保护知识产权的意义,从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进信息技术学科核心素养达成,完成项目学习目标。知识分享与开源精神 开放源代码与知识产权第五章知识分享与知识产权21X1359.indd 1212021/3/11 11:43:52122122第五章 知识分享与知识产权教室空气质量监测仪的开源许可证与知识分享项目范例情 境今天,开源硬件的学习、
246、制作资源非常丰富,这得益于世界范围内众多创客的贡献。当我们尝试学习、制作一个项目时,可以通过网络搜索到详细的元器件资料以及一些项目的详细设计文档,可以在开源硬件社区、论坛与世界各地的创客交流创意、分享经验。这就是开源项目发展中一个典型的场景。我们应如何有效地利用知识分享渠道快速学习、推进项目,如何避免因行为不当而侵犯别人的知识产权,如何厘清知识分享与知识产权的界限?主 题教室空气质量监测仪的开源许可证与知识分享规 划根据项目范例的主题,在小组中组织讨论,利用思维导图工具,制订项目的学习规划,如图5-1所示。图5-1“教室空气质量监测仪的开源许可证与知识分享”项目学习规划探 究根据项目学习规划的
247、安排,通过网络资料搜索、文献阅读和项目分享,开展“教室空气质量监测仪的开源许可证与知识分享”项目学习探究活动,如表5-1所示。21X1359.indd 1222021/3/11 11:43:54123123教室空气质量监测仪的开源许可证与知识分享表5-1“教室空气质量监测仪的开源许可证与知识分享”学习探究活动探究活动学习内容知识技能知识分享与开源精神知识分享的概念;知识分享的特征。查阅相关知识分享的文献资料。理解开源与知识分享的精神。互联网环境中开源硬件知识分享平台。调查开源硬件知识分享平台与项目。开放源代码与知识产权知识产权的概念。查阅相关知识产权文献资料。完善项目中的设计方案。理解保护知识
248、产权的意义。践行开源与知识分享的精神。开放源代码中的知识产权。查阅相关开放源代码的引用文献,了解常见开源许可协议,在分享报告中践行。开放源代码中用于保护知识产权的常见协议。实 施实施项目学习各项探究活动,进一步理解开源的精神及知识分享与保护的重要性。成 果在小组开展项目范例学习过程中,利用思维导图工具梳理小组成员在“头脑风暴”活动中的观点,建立观点结构图,运用多媒体创作工具(如演示文稿、在线编辑工具),综合加工和表达,形成项目范例可视化学习成果,并通过各种分享平台发布,共享创造、分享快乐。例如,运用在线编辑工具制作的“教室空气质量监测仪的开源许可证与知识分享”可视化报告,可以在教科书的配套学习
249、资源包中查看,其目录截图如图5-2所示。图5-2“教室空气质量监测仪的开源许可证与知识分享”可视化报告目录截图教室空气质量监测仪的开源许可证与知识分享21X1359.indd 1232021/3/11 11:43:56124124第五章 知识分享与知识产权评 价根据教科书附录2的“项目活动评价表”,对项目范例的学习过程和学习成果在小组或班级上进行交流,开展项目学习活动评价。项目选题同学们以36人组成一个小组,选择下面一个参考主题,或者自拟一个感兴趣的主题,开展项目学习。1校园水质监测仪开源许可证与知识分享2家庭防盗监测仪开源许可证与知识分享3社区噪声监测仪开源许可证与知识分享项目规划各小组根据
250、项目选题,参照项目范例的样式,利用思维导图工具,制订相应的项目方案。方案交流各小组将完成的方案在全班进行展示交流,师生共同探讨、完善相应的项目方案。5.1 知识分享与开源精神在互联网日益普及的今天,各百科类网站在世界范围内通过用户共享知识、编辑、审核词条而形成的各种在线电子百科全书,已成为互联网上自由获取知识的重要平台。互联网上各类机构公开的数据资料库以及各类网站、论坛,构成了一个庞大的在线知识分享网络。专业机构与个人都可以通过这些网络平台,向他人分享自己的知识。这是互联网时代创造的一把双刃剑。人们可以借助这个知识分享平台进行终身学习,开展各种研究和创造。但同时,不可靠的知识也可能借助这些平台
251、得到快速传播,造成不可预知的后果。因此,我们在充分利用知识分享的同时,也要坚决抵制以知识分享为名传播虚假知识的行为。21X1359.indd 1242021/3/11 11:43:561251255.1 知识分享与开源精神探究活动思 考修改百科网站中的词条解释是常见的事情。然而,有一些人会恶意修改词条,引起人们的误解和疑惑,这严重损害了百科网站的权威性。词条修改行为是否应被视为一种知识分享?在互联网背景下的知识分享应该以自由还是专业、准确为第一准则?5.1.1 知识分享背景下的开源精神知识分享又称知识共享,通常是指在某个共同群体内,个人与个人之间、个人与组织之间、组织与组织之间的知识交流与知识
252、创新的过程。个人可以从这个过程中获得解决问题的方法和工具,增长个人知识。同时,组织也可以通过这个过程积累、丰富内部的知识。知识分享不仅可以促进协作,还可以创造新知识,提升共享双方的学习、创新能力,促进项目成果的迭代创新,提升科学技术水平并加速社会发展。开放源代码运动就是在知识分享的大背景下酝酿、产生的,且最早发源于软件业。早期的商业软件公司出于营利目的对软件源代码实施严格保护。但到了20世纪80年代,一群自由软件爱好者逆其道而行之,将软件源代码完全公开,使其能被免费获取并自由分发。其中,最有名气和影响力的开源软件项目是Linux。这些软件通常是由志愿者通过网络平台协同开发、持续维护的。这种独特
253、的生产与发布方式,取得了令人瞩目的成功,给商业软件造成了巨大的压力与挑战,迫使后者将更多原来只在企业内部交流的知识不断公之于众。这种模式,释放了知识分享所蕴含的巨大创造力和商业价值。因此,其他领域不断借鉴、复制这种模式,并衍生出开源硬件、开放获取(Open Access)、开源图书、开源科学研究等模式。这些通过知识分享推动创新的行动模式可被视为“开放源代码运动”的一系列变式。知识分享背景下的开源精神主要包括奉献、开放和创新精神。1奉献精神开源技术是一个巨大的知识宝库。例如,在开源编程语言Python、开源硬件Arduino中,积累了大量技术开发人员无私奉献的项目代码和电路设计,使得人们可以安心
254、地利用他们的成果继续创新。所以,我们需要怀着感恩和奉献的心,及时反馈项目使用中出现的问题,力所能及地修正项目存在的漏洞与错误,并尽可能把自己的创新成果开源,回馈社区。在为这个知识宝库的发展做贡献的同时,奉献者也能收获服务他人并为社会创造价值的快乐与满足。2开放精神开源技术能得到快速的发展,开放精神起到了十分重要的作用。思想开放的人乐于向21X1359.indd 1252021/3/11 11:43:57126126第五章 知识分享与知识产权社区分享自己的成果,同时也习惯于通过社区寻求帮助、结识朋友。3创新精神创新是推动人类发展的动力。通过工程技术人员和爱好者的持续努力,计算机和控制器已经变得像
255、Arduino和树莓派等开源硬件一样,非常小巧,方便使用。每个人都可以借助这类硬件将自己的创新想法变成产品,也可以不断更新这类硬件的设计或为它编写新的程序,让它变得更小、更易用,从而帮助更多的人实践他们的想法。开源硬件正是在这样不断追求进步、持续开放共享的过程中快速发展。其他开源技术同样如此。这种人们不断追求技术进步的行动,反映了人类追求持续进步的创新精神。阅 读开放科学硬件开放科学硬件相当于开放制作科学仪器的“源代码”,包括共享零件清单、装配示意图和装配指南,有时还提供借助激光切割机或3D打印机制作仪器部件的CAD模型文件。这种开放,使得人们能在彼此工作的基础上设计、分享和制造各种科学仪器,
256、促进科学的发展。目前,人们利用开源科学硬件已开发出数百种科学工具。其中最典型的例子是手持便携式光度计。最初,人们只是为了制造低成本的化学含氧量测量仪以取代昂贵的商用仪器。后来,有人通过增添廉价部件,将它升级为散射比浊计。再后来,又有人将这个仪器进一步增强为实验室级、用于硝酸盐精密测试、成本更低的便携式光度计,如图5-3所示。原始版 改进版 实验室级版图5-3 手持便携式光度计的设计与演变开放科学硬件不仅能帮助科学家降低仪器设备成本,提升科研效能,而且还能大大降低培训未来科学家的成本,让更多的学生受惠。思 考阅读资料,思考开源科学硬件对科学研究与科学学习的影响,以及如何将开源科学硬件应用到学习中
257、。21X1359.indd 1262021/3/11 11:43:571271275.1 知识分享与开源精神5.1.2 互联网常用知识分享平台1互联网上知识分享平台的常见类型互联网是知识分享的天然优良平台。在互联网上,从历久弥新的BBS讨论版、网站、社区论坛,到用户协作提供内容的百科网站、源代码分享网站、项目分享网站,再到即时通信工具群等移动互联网上的社交媒体圈,都分享着各行各业、各种类型的知识。不同类型的平台在知识分享的作用中不尽相同。(1)综合性网站。综合性网站,利用结构化的组织形式,呈现不同主题的内容知识,就像一个存储于网络的综合资料库一样。一个行业综合性网站,除了超文本内容外,还包括论
258、坛、知识库、项目库等不同形式的板块。典型的综合性开源网站有开源中国等。(2)社区论坛。社区论坛,主要由用户的提问帖、经验帖及回帖构成的以问题、项目为线索的主题讨论网站。论坛管理人员定期整理优质的沉淀内容,并在论坛中置顶为精华帖。社区论坛内容的最大特点就是用户贡献内容与人工甄别、排序内容相结合。例如,电子发烧友论坛、21 ic中国电子网中的技术论坛、CSDN软件开发者论坛等都是分享、交流软硬件、电子技术等 相关内容的知名论坛。(3)在线百科网站。在线百科网站,则是以词条形式,通过用户在线协作编辑内容并审核的一种百科全书式的词典知识库。在词条中除了文本、图片外,还有丰富的超文本链接资源,因此它们可
259、以在用户的持续贡献下不断地丰富内容。(4)源代码分享网站与项目分享网站。与开源软件、硬件密切相关的,当属源代码分享网站与项目分享网站。源代码分享网站实质上是一种托管软件项目的网站,是基于软件版本控制系统所构建的在线软件协同开发平台。每一个项目都有自己的主页。用户在登录网站后,可以在项目主页中自由查阅、下载不同版本的软件及其源代码。同时,用户也可以在获得允许的条件下,提交更新自己的源代码。随着开源硬件的兴起,在已有的开源软件代码分享平台中,越来越多硬件项目也在上面分享自己的设计与代码。其中典型网站为GitHub。而项目分享网站则是以项目为主要载体,以其设计、图文的制作过程为主要内容的网站。其中典
260、型的、用于分享用户兴趣类设计制作的网站如instructables。实际上,国内外的很多高校、企业也会在其网站上开辟相应的开源项目知识分享栏目、频道。这一方面便于团队内部的协作分享,另一方面通过开放分享,展示项目成果,以期获得外界的反馈,扩大项目成果的影响与协作范围。(5)自媒体与公共社交平台。博客、微博、微信朋友圈、公众号等软件或网页属于自媒体或公共社交平台,为知识分享者与学习者之间架设起全方位交流的桥梁。通过这些平台,人们不仅可以发布读书笔记、经验文章以及项目成果等图文信息,而且还可以方便地传播即时录制的音像、21X1359.indd 1272021/3/11 11:43:58128128
261、第五章 知识分享与知识产权视频等资料。2知识分享中的来源引用虽然在互联网上可以公开获取到各种信息、知识和开源项目源代码,但是在组织自己的调研报告、论文或者开源项目时,必须要清晰地标明参考过的资料、图片等内容引用的来源。例如,标明引用的网站名、引用电子文件的具体网址等。这样做是为了表示对原创作品版权的尊重和保护。例如,在一个介绍使用Arduino制作的项目演示文稿中,引用了某个网站的图片,则可以在图片下方注明引用文档的来源,如图5-4所示。当引用某文档的观点、文字作为论据或者叙述内容,则可以在引用处以角标的形式标明,并以页注或尾注的形式详细注明内容来源。图5-4 演示文稿中引用图片的标注方法调
262、查调查互联网中的知识分享网站及其特点,并完成表5-2。表5-2 知识分享网站及其特点网站名称网址关注领域内容特点21X1359.indd 1282021/3/11 11:43:581291295.2 开放源代码与知识产权讨 论围绕“开源精神与知识分享”的命题,以小组为单位选择以下其中一个问题,查阅相关资料,形成观点,在课堂上或在学校网络学习空间进行讨论与分享。1开源精神与知识分享有什么联系?2知识分享如何促进新知识的创造。3你是否愿意分享你的知识与特长?如果愿意,则选择一种知识分享平台,并阐述原因以及你想分享的内容。实 践以“空气质量监控”为关键词,通过互联网收集与空气质量监控相关的原理、装置
263、、背景等信息,将有用的文字、图片信息摘录、引用并汇集成调研演示文稿,同时做好相关信息引用的注明。项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,开展以下活动。1利用互联网搜索知识分享和开源精神的相关文献,分析知识分享和开源精神的内涵。2完成相应项目分享方式的选择和设计。5.2 开放源代码与知识产权一般来说,开放源代码并不代表产权所有人放弃了知识产权。虽然开放源代码与传统知识产权不同,但它并不反对知识产权。相反,在实际的行动中,开放源代码正努力从其他法律角度寻求版权、商标、专利等知识产权的综合保护,并通过与具有合同约束力的开源许可协议结合,形成一种类似但有别于传统知识产权保护的体系
264、。探究活动思 考你认为开放源代码可能会产生怎样的社会效益和经济效益?21X1359.indd 1292021/3/11 11:43:58130130第五章 知识分享与知识产权5.2.1 知识产权及其历史知识产权,也称为“知识所属权”,指权利人对其智力劳动所创作的成果和经营活动中的标记、信誉所依法享有的专有权利。一般由国家赋予拥有者在一定时间内享有专有权或独占权。所以,知识产权本质上是一种无形财产的财产权,它的载体是智力成果或者知识产品等无形财产。知识产权与房屋、汽车等有形财产一样具有价值。权利需要相关制度的保障。知识产权制度在世界上有着悠久的历史,尤其在专利、商标和版权等权利的保护上。截至目前
265、,它的发展经历了四个阶段,如表5-3所示。表5-3 知识产权发展历程阶段时间特点萌芽阶段13世纪14世纪封建王室赋予工匠和商人某些类似现代专利的垄断特权,成为日后知识产权制度的基础。发展阶段15世纪19世纪末绝大多数西方资本主义国家都建立了主要涵盖专利、商标、版权的相关知识产权制度,如最早的威尼斯共和国于1474年制定了世界第一部专利法专利法。扩张阶段19世纪末20世纪末知识产权在世界范围内呈现纵深式的扩张,知识产权逐步国际化、现代化。1970年,世界知识产权组织(WIPO)成立是这个阶段的重要标志。而社会主义国家与发展中国家也逐步加大对知识产权的保护力度。深化阶段20世纪开始知识产权制度与商
266、品贸易挂钩阶段。国际贸易商品中的知识要素、技术含量日益增加,国家和一些跨国大型科技企业,为了在市场竞争中保持优势地位,纷纷试图以知识产权为手段使自身利益最大化。从历史发展的角度看,知识产权制度是通过经济手段促进知识创新的一种工具。它是国家通过许可创新者对其创新成果拥有一定程度的垄断,借助经济利益,调动其创新积极性的手段。它对推动知识创新与扩散,推动知识与社会经济、产业发展相结合有着很大的作用。从知识分享的角度看,知识产权是一种有条件的知识分享方式。现代专利制度要求一个专利以公开说明书的形式公布专利的内容,才能获得这些内容的相应垄断性权益。但是,随着知识的公共产品属性越来越强,知识产权的垄断性所
267、带来的负面影响日益显现。这种基于经济利益考虑的垄断,有时反而成为知识创新的壁垒,阻碍了知识的进一步利用、融合与发展。阅 读12018年政府工作报告中提到与知识产权相关的内容:五年来,创新驱动发展成果丰硕。全社会研发投入年均增长11%,规模跃居世界第二21X1359.indd 1302021/3/11 11:43:591311315.2 开放源代码与知识产权位。科技进步贡献率由52.2%提高到57.5%。载人航天、深海探测、量子通信、大飞机等重大创新成果不断涌现。支持北京、上海建设科技创新中心,新设14个国家自主创新示范区,带动形成一批区域创新高地。以企业为主体加强技术创新体系建设,涌现一批具有
268、国际竞争力的创新型企业和新型研发机构。深入开展大众创业、万众创新,实施普惠性支持政策,完善孵化体系。各类市场主体达到9800多万户,五年增加70%以上。国内有效发明专利拥有量增加两倍,技术交易额翻了一番。完善产权制度和要素市场化配置机制。产权制度是社会主义市场经济的基石。要以保护产权、维护契约、统一市场、平等交换、公平竞争为基本导向,完善相关法律法规。对各种侵权行为要依法严肃处理,对产权纠纷申诉案件要依法甄别纠正。强化知识产权保护,实行侵权惩罚性赔偿制度。加快技术、土地等要素价格市场化改革,深化资源类产品和公共服务价格改革,打破行政垄断,防止市场垄断。要用有力的产权保护、顺畅的要素流动,让市场
269、活力和社会创造力竞相迸发。2新华网转载新京报关于我国H公司与A国S公司专利诉讼案的新闻:2016年,我国H公司起诉A国S公司,要求A国S公司就其知识产权侵权行为对我国H公司进行赔偿,所涉知识产权包括涉及通信技术的高价值专利和A国S公司生产的手机使用的软件。2018年,我国H公司起诉A国S公司侵犯知识产权案一审宣判。深圳市中级人民法院知识产权法庭认定A国S公司构成侵权,判定立即停止侵权,禁止以制造、销售、允诺销售等方式继续销售侵权产品。法庭认为,A国S公司在我国生产、销售相应4G智能终端产品,一定会使用我国H公司的这两项标准必要专利技术,因此,在我国H公司取得两项发明专利权以后,A国S公司未经许
270、可在我国实施H公司的两项专利技术,侵犯了原告的专利权。近年来,国产手机厂商的专利积累意识有所提升。我国H公司相关数据显示,截至2016年12月31日,我国H公司已经累计获得专利授权62 519件,申请中国专利57 632件、外国专利39 613件,90%以上为发明型专利,在国际排名上,H公司目前是中国企业发明专利授权量的第一位。讨 论小组讨论我国设计和利用了哪些知识产权制度和措施来保护市场活力与社会创造力。5.2.2 常见的开源许可证知识共享给开发者带来了很多便利。但是,源代码开放并不意味着我们可以随意剽窃创意和肆无忌惮地盗版,使用开源代码时必须注意尊重和保护知识产权。开源项目的知识产权保护是
271、通过共同遵守开源许可协议,并通过开源许可证具体实现的。21X1359.indd 1312021/3/11 11:43:59132132第五章 知识分享与知识产权许可协议是国际技术转让中普遍使用的一种合同,是指权利人(许可人)允许使用人(被许可人)付费使用自己的专属无形财产或制造分销产品的协议。许可证就是承载许可协议具体实施以及具有法律效力的书面合同凭证。为了体现开源项目的开放、共享特性,开源项目通常使用开源许可证明确开发者与使用者之间的权利和义务。在开源项目的传播过程中,一旦下载或使用了项目内容,开源许可证就自动生效。使用者与项目发布者就根据许可证协议内容,形成相应的契约关系。1软件开源许可证
272、目前,开放源代码软件许可证已有60种之多,常见的开源许可证有GPL、LGPL、BSD、MIT和CC等。(1)GPL(General Public License),通用性公开许可证。它规定:只要在一个软件中使用GPL许可证的产品,则该软件产品也必须采用GPL许可证,也必须开源和免费。这个协议可以极大地增加开源软件的数量。但是,这份协议不太适合商用软件,或者使用GPL开源组件的商用项目。例如Linux就是最早使用GPL协议、广为人知的操作系统内核,它完全免费并允许自由修改与传播。很多机构与个人基于Linux系统内核,制作了Redhat、Ubuntu等一系列Linux发行版本。著名的开源3D打印机
273、项目RepRap就是使用GPL协议。(2)BSD(Berkeley Software Distribution),伯克利软件套件许可证。这个许可证的协议内容相对宽松很多,适用于商业软件。BSD原指伯克利大学开发的一个Unix计算机操作系统分支版本。这个分支软件混合了一些开源代码和专利代码。因此,以BSD Unix为基础发展起来的BSD许可证允许使用者修改和重新发布代码,也允许使用者在BSD代码基础上开发商业软件,并发布和销售。BSD许可证鼓励代码共享,但需要尊重代码作者的著作权。(3)MIT(Massachusetts Institute of Technology),源自麻省理工学院,又称X
274、11许可证。MIT与BSD类似,但它的协议内容比BSD协议更加宽松,是目前最少限制的许可证。这个许可证唯一的条件就是要求在修改后的代码或者发行包中包含原作者的许可信息。例如,使用Python编程的机器视觉项目OpenMV的控制软件及算法部分就是使用了MIT协议,且允许其他使用者在合规的情况下修改、发行自己的软件包。(4)CC(Creative Commons),称为知识共享,是一份相对宽松的版权协议,一般用于设计、摄影、图片作品的开放式分享。它包含了四个可自由组合的不同后缀分项,分别为BY(开源但署名必须提到原作者)、NC(开源但作品不可用于营利性目的)、ND(开源但不允许修改原作品)和SA(
275、开源但修改后必须使用相同许可证发布)。例如,开源机器视觉项目OpenMV的硬件电路设计图以及电路板布线图就是使用了CC-BY-SA协议开源发布。与使用MIT协议开源的软件部分不同,OpenMV项目向用户开源了硬件电路设计图与布线图,但要求用户在声明原作者署名的条件下才能对项目进行个性化修改,并且必须使用相同的许可证开源修改后的代码和项目。(5)木兰宽松许可证(Mulan Permissive Software License),是北京大学牵头并依托全国信标委云计算标准工作组等国内相关机构、人员共同研制的本土开源许可证。和其他源于国外的许可证不同的是,它使用中英文表述并发布,且两种表述具备同等法
276、律效力,可免去中文使用者进行法律解释时的语言难度。该许可证具有和BSD许可证相似的宽松度,兼容性好且具有商业友好性。它允许使用者在尊重原作者与贡献者版权的基础上修21X1359.indd 1322021/3/11 11:43:591331335.2 开放源代码与知识产权改、重新发布代码,以及开发商业软件。上海交通大学团队开发的HCloud可信云际计算平台等一批国内开源项目率先应用了木兰宽松协议。2硬件开源许可证继软件开源许可证之后,也出现了一些硬件开源许可证,其中最常见的包括TAPR、CERN和Solderpad。这些开源硬件许可证延续着开源软件许可证的规则,以著作权为基础构建许可协议,把开源
277、软件惯用的GPL、BSD等协议带到开源硬件中来。(1)TAPR(Tucson Amateur Packet Radiosystem Open Hardware License),是GPL-2.0授权条款在硬件领域的衍生版本。它规定,如果硬件设计文件的开源者留下了他的电子邮箱,而后来的使用者修改了这份以TAPR 授权的设计文件,则必须将修改后的设计文件,寄送到开源者留下的电子邮箱,或是通过此电子邮箱联系开源者进行修改通报。TAPR 侧重于无线电装置设计的开放应用。(2)CERN(European Organization for Nuclear Research Open Hardware Li
278、cense),是将GPL-2.0与自由、开源的理念和做法,添加到开源硬件中来的一种许可证。许可证规定,使用者向开源者的修改通报,没有限制必须以电子邮件形式进行。它的授权条款比较全面与细致,它将关注层面放在未来有机会采用开源模式发展的更多的硬件上。(3)Solderpad(Solderpad Open Hardware License),与TAPR和CERN有很大不同,它并不强制用户修改后必须通报原作者,并以原有许可证方式开源。micro:bit的电路设计图和布线图部分就是基于Solderpad协议开源的。根据协议,micro:bit将可以直接通过电路设计自动化软件进行修改的电路设计图和电路板布
279、线图文件开源,供用户使用。用户自行决定是否将修改后的新设计开源。项目一旦开源,必须注明原作者的贡献以及所继承的协议。总之,在开源硬件项目设计的学习、实践中,我们要注意了解开源许可证的种类和许可协议内容,要具备相关知识分享与知识产权保护的知识和能力,遵守有关开源、信息安全等方面的法律法规,具备良好的信息道德与伦理,在信息社会中有责任,有担当。查 阅阅读表5-4部分开源许可证一览表和图5-5常用开源许可证关系分析图,并查阅国内外相关开源许可证以及和开源硬件相关的法律法规,对表5-4进行扩充与完善。表5-4 部分开源许可证一览表许可证类型能否加入其他非开源代码是否可以不公开修改后的源代码是否只能按本
280、许可发布源代码对修改后闭源的代码是否必须声明版权GPL许可证不允许闭源BSD许可证MIT许可证CC许可证21X1359.indd 1332021/3/11 11:43:59134134第五章 知识分享与知识产权许可证类型能否加入其他非开源代码是否可以不公开修改后的源代码是否只能按本许可发布源代码对修改后闭源的代码是否必须声明版权TAPR许可证不允许闭源CERN许可证不允许闭源Solderpad许可证LGPL许可证不允许闭源APACHE许可证木兰宽松许可证问 题问题一:A同学发现自己在网络上分享过的一个项目创意,以B项目出现在他所在城市的学生创客比赛中。经过比较,他发现该项目和自己的项目不仅创意
281、相同,而且在形态结构上有诸多相似之处。更重要的是,该项目并没有声明对自己项目的借鉴与引用,却声明为原创作品。问题二:“一次意料之外的专利申请”。中国某科技公司向原国家工商行政管理总局商标局申请,将“ARDUINO”“MAKEBLOCK”“ARDUBLOCK”等开源硬件、软件品牌名称注册为自有商标。图5-5 常用开源许可证关系分析图(续表)21X1359.indd 1342021/3/11 11:44:011351355.2 开放源代码与知识产权问题三:“一张消失的证书”。C同学开发的、使用MIT开源许可证的开源智能台灯项目非常受欢迎,项目源代码在网络上广为流传。有一天,他在某开源社区下载了一个
282、使用该开源智能台灯项目代码进行二次开发并开源的项目代码包。解压缩后发现,该开源项目同样使用MIT开源许可证,但只包含了开发者本人的相关开源信息。讨 论1如何评价问题一中B项目作者的行为?为了避免这种情况,你对A同学有何建议?2从开源与知识产权的角度,你如何分析问题二中公司的商标注册行为?3具有国际影响力的、由网络社区共同形成的品牌,能否在个别国家或地区注册商标?这样的行为是以商标的形式保护了品牌,还是侵害了品牌的知识产权?4分析问题三中开源项目使用许可证的方式是否合理。实 践1为自己小组所设计的相应项目撰写一份源代码开放注意事项,要求:(1)选择一个合适的开源许可证,并说明理由。(2)查阅该开
283、源许可证具体内容,并根据项目需要撰写源代码开放注意事项。注意事项是对使用源代码的人所提的具体要求,整理成文档后与所选开源许可证信息一同发布交流。2制作相应项目的可视化报告,并要求在封面上注明采用了哪个开源许可证。项目实施各小组根据项目选题及拟订的项目方案,结合本节所学知识,完善项目设计,理解保护知识产权的意义和常见开源许可证协议,并参照项目范例的样式,撰写相应的项目成果报告。成果交流各小组运用数字化学习工具,将所完成的项目成果,在小组或班级上进行展示与交流,共享创造、分享快乐。活动评价各小组根据项目选题、拟订的项目方案、实施情况及所形成的项目成果,利用教科书附录2的“项目活动评价表”,开展项目
284、学习活动评价。21X1359.indd 1352021/3/11 11:44:01136136第五章 知识分享与知识产权本章扼要回顾同学们通过本章学习,根据“知识分享与知识产权”知识结构图,扼要回顾、总结、归纳学过的内容,建立自己的知识结构体系。回顾与总结21X1359.indd 1362021/3/11 11:44:02137137本章学业评价本章学业评价同学们完成下列测试题(更多的测试题可以在教科书的配套学习资源包中查看),并通过“本章扼要回顾”以及本章的项目活动评价,综合评价自己在信息技术知识与技能、解决实际问题的过程与方法,以及相关情感态度与价值观的形成等方面,是否达到了本章的学习目标
285、。1单选题(1)开源精神可以归纳为奉献精神、开放精神和()精神。A共享 B求实 C创新 D合作(2)假设你打算设计一个校园气象站,想在互联网上寻找类似的项目做参考,则下列网站或平台可以满足你需求的是()。A微信朋友圈B项目分享网站C源代码托管网站D微博(3)假设你已经完成一个校园气象站的设计制作,想将它在网络上开源,并希望项目及其修改版本只能保持相同许可证和继续公开源代码,应该选用的开源许可证是()。AGPL通用性公共许可证BCC知识共享许可证CBSD许可证DMIT许可证2思考题在信息时代,应如何认识开放源代码运动中的规则意识与分享意识?3情境题以校园气象站制作为课题,拟订一个项目制作、网络展
286、示,并制作开源的开题计划书,那么:(1)你会选择将哪一个网站或平台列入计划书中,原因和作用是什么?(2)假设项目最终需要面向青少年或初学者进行分享,你计划以什么方式展示并开源项目?参考下表,把需要开源的内容以及文件格式制作成一个列表清单。序号开源内容文件格式1分享报告电子文档、演示文稿等221X1359.indd 1372021/3/11 11:44:02138138附录1 部分术语、缩略语中英文对照表附录1 部分术语、缩略语中英文对照表Android安卓系统(1)ArduBlock第三方图形化编程软件(1)Arduino开源硬件开发平台(1)Arduino IDEArduino官方文本编程软
287、件(1)Arduino UNO一款Arduino的开发板型号(1)COM(Cluster Communication port)串行通信端口(1)Copyright著作权(5)Fritzing图形化电路设计软件(2)GND(Ground)地线/接地(1)I/O输入/输出(1)micro:bit开源硬件开发平台(1)Mixly图形化编程软件(1)OSH(Open Science Hardware)开源科学硬件(5)OSH(Open Source Hardware)开源硬件(5)OSHA(Open Source Hardware Association)开源硬件协会(1)OSI(Open Sour
288、ce Initiative)开放源代码促进会(1)PWM(Pulse Width Modulation)脉冲宽度调制(4)Raspberry Pi树莓派(1)RX(Reception X)接收端口(4)source源代码(1)TX(Transmission X)发射端口(4)USB(Universal Serial Bus)通用串行总线(1)VCC(Volt Current Condenser)电源电压(4)Wi-Fi无线联网技术(1)21X1359.indd 1382021/3/11 11:44:02139139附录2 项目活动评价表附录2 项目活动评价表以培养信息素养为目标,以知识体系为载
289、体,以项目学习活动过程与评价为途径,促进同学们信息技术学科核心素养达成。项目学习主题:项目学习过程学科核心素养达成一级指标二级指标评价结果支撑材料选定项目从现实世界中选择 明 确 的 项 目 主题,形成对信息的敏感度和信息价值的判断力。分析项目目标与可行性。项目选题从现实世界选择项目主题的能力。化抽象概念为现实问题的能力。对信息的敏感度和价值的判断力。优秀 良好中等仍需努力项目分析分析项目目标的能力。分析项目可行性的能力。从现实世界发现项目素材的能力。优秀 良好中等仍需努力规划设计组建团队与明确项目任务,体现正确的信息社会责任意识。规划项目与交流方案。项目规划组建团队与明确项目任务的能力。规划
290、项目学习工具与方法的能力。预期项目成果的能力。优秀 良好中等仍需努力方案交流交流项目方案的能力。完善项目方案的能力。体现正确的信息社会责任意识。优秀 良好中等仍需努力活动探究通过团队合作,围绕项目进行自主、协作学习。开展探究活动,提升信息获取、处理与应用、创新能力。团队合作自主学习能力。分工与协作能力。交流与沟通能力。优秀 良好中等仍需努力探究活动信息获取与处理能力。探究与联想能力。实践与创新能力。优秀良好中等仍需努力21X1359.indd 1392021/3/11 11:44:03140140项目学习过程学科核心素养达成一级指标二级指标评价结果支撑材料项目实施针 对 给 定 的 任务进行分
291、解,明确需要解决的关键问题,并采用计算机科学领域的思想方法,在形成问题解决 方 案 的 过 程 中产生一系列思维活动。完成方案中预设的目标。工具方法采用计算机领域的思想方法能力。使用数字化工具与资源能力。数字化学习能力。优秀 良好中等仍需努力实施方案针对给定的任务进行分解。明确需要解决的关键问题。完成方案中预设的目标。优秀 良好中等仍需努力项目成果交流与评价与团队成员共享创造与分享快乐,提升批判性思维能力与信息社会责任感。评价项目目标与成果质量效果。成果交流清晰表达项目主题与过程。与团队成员共享创造与分享快乐。提升批判性思维能力与信息社会责任感。优秀 良好中等仍需努力项目评价运用新知识与技能实
292、现项目目标。项目成果的可视化表达质量。项目成果解决现实问题效果。优秀 良好中等仍需努力综合评价优秀 良好 中等 仍需努力注:1评价得分90100分为优秀(A);7589分为良好(B);6074分为中等(C);60分以下为仍需努力(D)。2综合得分=互评30%+自评30%+教师评40%。(续表)附录2 项目活动评价表21X1359.indd 1402021/3/11 11:44:03普 通 高 中 教 科 书选择性必修信息技术普通高中教科书信息技术6开源硬件项目设计Kaiyuan Yingjian Xiangmu Sheji选择性必修 6开源硬件项目设计广东教育出版社广东教育出版社批准文号:粤发改价格2017434号 举报电话:12315定价:10.86元ook2020信息技术选择性必修1-6封面.indd 62020/12/3 下午3:55