《用安卓手机控制开源硬件》 教学设计
郑祥 谢作如
● 教材分析
《用安卓手机控制开源硬件》位于校本课程《安卓应用程序的设计与开发》第三章,其教学内容是开发能够控制开源硬件的手机App。课程中选择的开源硬件是虚谷号,支持蓝牙和Wi-Fi两种形式与手机通信。相对来说,用Wi-Fi形式更加方便,更符合物联网的常见通信形式。本节课的教学内容需要2个课时,采用连堂课的形式开展。要求学生能够通过Web服务的方式,即WebGPIO来控制虚谷号,不仅要完成一系列的信息实验,还要能自主开发安卓手机的应用程序,通过App按钮来控制虚谷号上的电风扇模块。
● 教学对象
本节课的教学对象是初中学生,他们不仅熟悉安卓手机App的一般开发过程,能够用AppInventor2編写简单的App,还初步接触过开源硬件,熟悉Arduino等开源硬件的引脚、PWM的使用,能够用Mind+之类的软件为开源硬件编写代码。
● 教学目标
知识与技能目标:理解WebGPIO的概念,掌握在虚谷号上运行WebGPIO服务端的方法,掌握HTTP协议中的GET、POST请求方法;熟悉AppInventor2开发平台中的Web客户端组件,能开发控制虚谷号的安卓App应用程序。
过程与方法目标:通过实验操作,掌握AppInventor2开发平台中Web客户端组件的一般使用方法。
情感态度与价值观目标:通过安卓手机App的开发对虚谷号上硬件模块的控制,消除对远程物联网控制的神秘感,提高对信息技术的学习兴趣。
● 教学重难点
重点:POST方法的参数设置,掌握远程控制的安卓App的开发。
难点:理解POST和GET两种HTTP请求方法的区别。
● 教学过程
1.激发兴趣,导入新课
投屏展示:通过安卓App远程控制虚谷号上风扇模块的“打开”与“关闭”。提问:安卓手机App是怎么完成对风扇模块的控制的?虚谷号在这个过程中,又起到了什么作用呢?
引导学生讨论并归纳:安卓手机App是通过无线Wi-Fi来发送控制风扇模块的信号给虚谷号;虚谷号起着信号接受的作用。
虚谷号上运行了一个Web服务WebGPIO;通过这个Web服务,安卓手机App就可以非常方便地控制开源硬件虚谷号了。
设计意图:通过展示远程控制风扇模块的开与关,激发学生兴趣,并引出主题。
2.讲解新知,探知原理
虚谷号WebGPIO服务:GPIO是通用型之输入(GPI)输出(GPO)的简称,即PIN引脚。顾名思义,WebGPIO可以通过Web的方式控制GPIO。
虚谷号的WebGPIO服务采用了简单的设计,即用HTTP的GET请求方法获取虚谷号PIN引脚状态,用POST请求方法控制引脚电平。
WebGPIO的协议:HTTP请求有很多种方式,最常见的是POST请求和GET请求。虚谷号的WebGPIO协议采用GET方式获取引脚状态信息,采用POST方式发送控制命令,具体参数介绍如下表所示。
①参数Pin对应虚谷号上的引脚为:A0-A5,D0-D13;②参数Value对应的值为:虚谷号对应引脚的数值;③参数Type对应控制的类型:可以是1、2、3,分别代表“digital”“analog”“servo”。
设计意图:引入课堂主要内容——原理讲解,分散教学重难点。
3.实验操作,验证原理
(1)提问:通过POST/GET方法,是否真的能够控制虚谷号?接下来要通过信息实验来验证。本次实验需要明确完成哪些内容呢?
引导学生列举出实验所需的操作任务:①在虚谷号上运行WebGPIO服务器程序;②明确POST/GET方法向WebGPIO服务器程序传值的参数;③验证POST/GET方法是否真的能控制虚谷号;④做好实验记录,完成实验报告。
设计意图:通过引导学生通过实验的方式验证自己的设想,并列举实验操作的任务步骤,让学生能明确实验任务目标。
(2)学生以小组形式领取实验器材,参考实验报告,小组合作讨论完成实验。教师巡视学生的实验操作,并及时给予帮助和引导。
设计意图:通过实验操作巩固学生POST/GET方法参数的设置,为后面的项目开发做好准备。
4.头脑风暴,开发项目
(1)教师介绍App invneotr2中的Web客户端组件,指出:Web客户端组件为非可视组件,用于发送HTTP的GET、POST、PUT及DELETE请求。App中需要增加Web客户端组件,实现对虚谷号的控制。
(2)提问:借助WebGPIO功能,安卓手机App可以开发怎样的应用?要求学生小组合作讨论,开展头脑风暴,把创意想法画出来或写在纸上。(教师展示各小组的创意想法,引导学生一起分享交流,并吸收建议)
(3)教师提供相应的硬件模块和安卓App开发范例帮助文档,要求学生通过小组合作开发项目,并完成作品的测试。教师巡视教室,并及时解答学生的各种问题。
5.作品展示,心得分享
教师投屏展示各小组完成的项目,并且邀请学生派代表展示运行效果。学生交流、分享自己小组内的感受、收获等。
这节课通过讨论交流、实验,让学生尝试了通过WebGPIO控制开源硬件虚谷号,而且还开发出了相应的安卓App程序。其中涉及了GPIO的概念、POST/GET方法参数及AppInventor2的Web客户端组件,体验了软硬件相结合的创客作品开发过程。
● 教学反思
本次课的学习主题是通过安卓手机控制开源硬件。学生通过“新知讲解、探知原理”“实验操作、验证原理”“头脑风暴、开发项目”这三个主要环节逐步实现对知识技能的学习、实践和运用。此外,在“实验操作、验证原理”环节,学生能够直接利用工具,验证学习的WebGPIO协议,表现出莫大的兴趣;在“头脑风暴、开发项目”环节,学生在App测试方面,也用到了实验中学到的方法。可见,先完成信息实验再应用知识开发项目,学以致用,对一些复杂的信息技术知识学习是很有帮助的。