软件工程用java还是python,python可以做硬件开发吗

  软件工程用java还是python,python可以做硬件开发吗

  随着中小学创客教育的推广,开源硬件已经被教育工作者了解并进入中小学课堂。从最初的APP小规模应用,到区域层面的大规模推广,开源硬件以其价格低、性能强、资源丰富、扩展性强等优势,越来越受到老师们的认可。短短几年时间,不同价位功能的开源硬件如雨后春笋般从Arduino发展到mixly、Mind、mPython,开源硬件编程工具越来越多,更容易上手。

  教育部发布《普通高中信息技术课程标准(2017年版)》后,计算思维成为课程核心素养的重要组成部分。几乎所有新编写的高中和初中教科书都选择Python作为编程语言。这给开源硬件的教育带来了新的挑战。这是因为Arduino不支持Python,micro: bit和控制板只支持MicroPython。中小学应该如何选择开源硬件?继编程工具之后,是否可以用Python对不同的开源硬件进行编程,实现编程规范的统一?

  本期特刊,本刊特约撰稿人、“虚谷计划”联合发起人、知名创客老师xhdkl针对上述问题带来了解决方案。他与蘑菇云创客空间的创客合作开发了Python库pinpong,用统一的Python代码实现了不同开源硬件的编程。Pong库的出现让开源硬件的选择不再困难,为物联网、人工智能、交互媒体等领域提供了新的思路。

  课程开发者之间的对话:

  新技术如何进入中小学教育2.0

  对话嘉宾:

  浙江省温州中学教师、“虚谷计划”联合发起人Xhdkl

  Cqdny是江苏省南通大学附属中学教师,“虚拟食物联盟”项目核心人员。

  困难的地方

  055-79000)课程开发和教材编写非常复杂。既要梳理课程的各种知识,又要综合考虑实施中的各种问题。两位老师在课程开发和教材编写过程中遇到了哪些问题?

  xhdkl:

  我关注新技术,所以如何选择适合中小学的软硬件是我最中心的工作。往往困难也在这里。以《中国信息技术教育》为例。《开源硬件项目设计》的生产始于2016年初,当时国内最流行的开源硬件是Arduino,其次是草莓派。因为草莓派的应用门槛太高,当时的应用案例大多是用草莓派做电脑,外接显示器,键盘鼠标。我们觉得这样的教育场景很难推广,所以一开始就否定了草莓派。但是Arduino的编程语言是CC,或者用Ardu Blcok和Mixly也让我们很尴尬。教材的其他模块都是用Python,所以到了这个模块就用C/C,另外,抛开学生的编程基础是如何实现的,从整体来看,是有些“不合适”的。使用M ixly等图形化编程工具也有“矮化”学生的嫌疑。

  cqdny:

  受kadlc的影响,我也专注于开源硬件。当然,我想把这种“新技术”带入中小学课堂。以清华大学出版社《开源硬件项目设计》教材为例,物联网技术远非“新”,在中小学教材中频繁出现。然而,如何让物联网技术与当前流行的Python语言进行交流,重构中小学课堂上的“新”机器,这是我们在编写教材时面临的最大困难,也可以说是最大的挑战。那就是如何设计与新技术相关的东西,让学生实际完成各种经典实验的新技术课程。

  学生实习的前提是学校会给我们一个网上工具包,购买这本教材所用的物品。如果成本太高,部分学校无法实施的技术难度太高,老师就无法上课。应该采用什么样的编译策略?我们的教材既能打破以往教材的瓶颈,又能兼顾个别学校的实际情况,这也是

  我觉得只有两条路。一个是继续寻找,在世界上寻找。比如编写高中信息技术教材时,第一个版本选择在智能终端中使用Arduino。大约半年后,我偶然注意到micro:bit支持MicroPython。经过研究,我向几位主编提出了大胆的想法。课本——的Arduino换成了micro:bit。

  比如人工智能神经网络的实验,一开始大家都在犹豫TenserFlow太难了,但是很快就找到了Keros,它的代码简洁易懂。第二种方式是自己想办法。比如我们当时选择micro:bit就有风险。因为国内没有厂商支持micro:bit,所以外围电路和扩展模块没有保障。于是,我说服了国内一些关系密切的企业家设计了micro:bit扩展板。通过猫友会、STEAM教育大会等平台组织微:bit培训,编写课程。因为有市场,就会有各种支持。毕竟我们的教材还没正式出版,微软:bit已经在国内创客教育圈“火”了。

  在《物联网与智能家居》开发之前,ArduBlcok很难使用。我和cqdny等同学重新整理了细节,请新工厂的凶猛奥特曼重新开发ArduBlcok教育版。起初,micro:bit的代码编写工具并不成熟,官方只提供在线编写,教材没有办法。为了这个目的

  ,我建议DFRobot开发一个开源的小工具叫BXY。目前BXY是micro:bit和控制板最好的编码工具之一,在初高中教学中非常需要。

  追溯“虚谷计划”的起源,其实是我们一线老师因为找不到好的软硬件平台,最后想出来的一个办法。控制板是为了解决物联网的终端问题,虚拟谷是为了解决人工智能教学问题。

  cqdny:

  可喜的是,随着时间的推移,新技术落地的时机会越来越成熟。在开源硬件的选择上,成本较低的Arduino和控制板也可以作为学生编写教材时操作的主要对象。Arduino是国内最受欢迎的开源硬件,大众接受度比较高;控制板是国内为普及STEAM创客教育、人工智能教育、编程教育而研发的开源智能硬件。它小巧精致,功能强大。开发之初,Control Board提供了Python的简化版本——MicroPython作为其编程语言之一;Arduino一直只使用“块语言”或“类C语言”进行编程,但在2020年春天,虚谷项目和上海蘑菇云的制作者开发了pinpong库,使得Arduino也支持Python编程。

  Pinpong库是一个Python硬件控制库。原理是给智能终端烧一个特定的固件,让智能终端通过串口与计算机通信,执行各种命令。目前pinpong库支持Arduino、控制板、micro:bit、虚谷数等。借助pinpong库,可以直接用Python代码编写各种常见的智能终端。pinpong库的设计是为了让开发者在开发过程中不被复杂的硬件模型所束缚,而是将重心转移到软件的实现上。换句话说,硬件不重要,什么都可以选,软件才是核心。

  当软硬件都解决好了,编写教材的主要任务就是如何设计活动,设计活动让学生练习。对我来说,需要解决的是综合考虑所涉及活动的难度、兴趣和成本。例如,我们将活动分为三类:体验、实验和实践。“体验活动”可以由教师进行讲解,由学生按照活动资源包的步骤进行体验,也可以录制成视频供学生观看。选项多,所以体验活动的设计会更注重活动的趣味性;而“实验活动”和“实践活动”是需要学生经历实验和实践的过程。为了大班教学的顺利进行,在选择具体活动时会考虑所用设备的成本,活动的渐进性难度为c

  055-79000:能否以一门课程为例,简单介绍两门课程的思路或核心概念?

  xhdkl:

  我以《中国信息技术教育》为例。这是高中信息技术课程的一个选修必修模块,按照开源硬件项目的设计流程,针对学生的个性化发展需求而设计。该模块由三部分组成:开源硬件的特点、开源硬件的项目流程和基于开源硬件的作品设计与制作。

  我们的教科书分为五章。先介绍“开源思想和开源硬件”。然后,通过分析一个典型的开源硬件项目,了解其开发流程,规划一个项目。然后,在开发这个项目之前,先学习硬件的基础知识。最后,我们指导学生在GitHub或Gitee上发布和维护这个项目。

  学生如何才能顺利完成项目?考虑到世界各地学校的条件,我们给学生看的开源硬件项目都偏向于编程,尽量避免机械结构。我们提供了三个典型的项目开发过程作为学生的学习实例,分别是电脑魔术控制器、课堂答录机和智能花盆,涉及人机交互、多机通信和物联网技术,多学科的知识。总之,我的课程开发理念是,必须要落实。

  cqdny:

  我以《Arduino创意机器人》为例简单介绍一下。教材分为两个单元:第一单元,了解物联网后,深入了解物联网的终端设备、通信、感知和控制,学会搭建简单的物联网系统,实现远程互联;第二个单元,智能家居,是第一个单元的具体应用,涉及室内环境感知、家电远程控制、智能交互查询以及智能家居的未来。

  和其他教材一样,本教材也采用项目式学习来组织教材。项目分为学习指导、问题需求、实施规划、分工协作、项目实施、交流分享等。在每个单元的前面,教材会给出一个带有具体情境的项目案例,以此来引导和启发学生,鼓励他们尝试设计一个与本单元内容相关的大项目。同时,在每一节的最后,通过“项目实施”环节,帮助学生明确项目中的重点。

  课程开发与建设

  055-79000:最后回到正题。如何让新技术真正走进中小学课堂,相信是每个老师都要面对和需要解决的问题。在这方面,两位老师能否给其他课程开发的老师一些建议?

  xhdkl:

  随着信息技术的飞速发展,我们的教材必须与时俱进。对于中小学引入新技术,我认为需要注意两点。

  首先要考虑学习成本,即如何降低技术门槛,让老师快速接受。比如在设计控制板的语法时,我们特别兼容了micro:bit的语法。同样,虚谷数和pinpong库的语法,我们又兼容了控制板。只要学会其中一种,其他的都差不多。由此,开源硬件的教学逐渐形成了行业规范。

  二是考虑实施成本,即不能太贵,也不能太麻烦。比如在设计虚拟谷的时候,我重点关注了jupyter。如何通过网络让虚谷外挂编程是一个很好的体验。Pinpong可以很好地与jupyter集成,支持常见的开源硬件和常见的输入输出模块,从而减少硬件投入。这两点在其他新技术的推广中也很常见。

  cqdny:

  除了kadlc提到的学习成本和实施成本之外,我想补充一点关于中小学引入新技术的问题。这几天最新版本的pinpong库已经可以支持NFC模块了,这是我前段时间向开发团队提出的新需求。由于NFC是物联网技术中的核心技术之一,应用非常广泛,目前在教学中还没有特别简单的方法来做“NFC实验”。一开始控制板、BXY、pinpong库等软硬件功能都不完善。随着我们不断提出需求,工程师不断开发,控制板和pinpong库越来越强大,越来越贴近中小学的教学实践。

  因此,新技术要在中小学实施,需要很多人的努力和社会企业的支持。我们不仅要学习新技术,还要积极参与新技术的推广。当我们的一线老师和企业之间形成了良好的互动机制,那么这些教育产品就会更加贴近实际课堂。

  本文来源:《中国信息技术教育》

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: