让开源硬件的选择不再成为难题

来源 :中国信息技术教育 | 被引量 : 0次 | 上传用户:moligu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  ● pinpong库的起源
  2020年初,笔者受清华大学出版社的委托,组建团队来编写初中的信息技术教材。按照主编樊磊教授的要求,教材中不仅要涉及人工智能、数据科学,还要加入物联网和开源硬件等知识。这时笔者发现,教材中应该使用哪一款开源硬件,已经成为一道难题。
  1.开源硬件大盘点
  据不完全统计,目前市场上有一百多种开源硬件,其中在中小学市场占有率较高的有Arduino、micro:bit、掌控板等,这些开源硬件支持的编程语言和工具如表1所示。
  从表1中会发现,树莓派、虚谷号、拿铁熊猫和pcDuino等开源硬件,因为都采用了性能较好的芯片,能够运行标准的Linux操作系统,所以能够支持Python语言,支持Python idle之类任何一款能够运行Linux的Python IDE。而Arduino、micro:bit和掌控板这三种市场占有率最高的开源硬件,都不支持Python。这些硬件中共同支持的编程工具,只有Arduino IDE。
  Arduino的兴起,是因为其采用了标准的编程规范,简化了单片机的开发难度,毕竟创客教育面向的是非专业人群。但是Arduino IDE采用的是C/C ,在开发难度上比Python要高很多。当中小学的主流编程转向Python后,大家不得不重新寻求一种新的解决方案。因而,MicroPython一出现,就很快成为开源硬件编程语言中的热点。micro:bit和掌控板的一夜成名,MU、BXY和mPython等工具的先后面世,并且写入国家教材,正是因为其顺应了中小学编程语言发展的潮流。
  2.选择开源硬件难在哪里
  不同的开源硬件采用了不同的芯片,其支持的编程语言和编程工具也各自不同,甚至连引脚编号和支持的扩展模块也不同。Arduino的优势在于其外部扩展资源多,掌控板的优势在于它能够便捷联网,虚谷号的优势在于它支持标准的Python,那么究竟是选择Arduino、micro:bit还是选择掌控板、虚谷号呢?
  除了Arduino IDE外,有沒有一种编程语言,用统一的编程规范来控制不同的开源硬件?答案肯定是有的,那就是新兴的Mind 、Kittenbot等图形化编程工具。因为类似Scratch、Blockly的图形化代码最终会“转化”为相应的代码,如Arduino代码或者MicroPython代码。这样就降低了编程的门槛,同样的代码规范,在不同的硬件上都通用。
  3.开发pinpong库的可行性分析
  笔者为什么选择用开发Python库的形式,而不是开发一个全新的编程语言,主要有如下几点理由。
  (1)Python已经成为中小学主流编程语言
  Python虽然古老,但因为开源而与时俱进。作为一个为非专业用户设计的编程语言,Python类似Shell,让用户不需要过多关注算法之外的细节,淡化了界面设计,成为培养学生计算思维的最好工具之一。可以肯定,接下来从初中开始,主流的编程语言一定是Python。那么用扩展库的方式,让Python又多了一项功能,是最主流也是最合理的一种选择。
  (2)用Python控制开源硬件已经有一定的基础
  据了解,早在2014年就有创客团队在开发一个名叫pingo的Python库。其初衷也是希望为Raspberry Pi、BeagleBone Black、pcDuino和伽利略等开源硬件的编程提供统一的API,就像Python DBAPI为Python中的数据库编程提供了统一的API一样。只是很可惜,这个项目在四年前停止了开发。除此之外,为Arduino设计的Python库还有多个,如pyfirmata和PyMata,以及虚谷号的xugu库等。
  (3)能运行Python的开源硬件将越来越普及
  继树莓派之后,越来越多的“派”系列产品被设计出来,如pcDuino、香蕉派和香橙派等,这些开源硬件的价格越来越亲民,因此,与其想方设法用MicroPython的方式去兼容单片机,还不如直接用Python代码去控制开源硬件。这样一来,Python的各种“无所不能”的库都可以用起来。
  ● pinpong库的规划
  如何设计一个Python库?笔者首先确定了这个库的第一目标人群是中小学生,是初学者。其次,考虑到micro:bit和掌控板都支持MicroPython,那这个库要兼容它们的语法。因此,这个库需要具备代码简洁、语法灵活和使用简单三大特点。
  1.工作原理
  pinpong库选择的方案是使用标准的Python代码来控制开源硬件,这和MicroPython的做法不一样。MicroPython是借用了Python的语法风格,最终会编译为C语言。而Python中大量的库都要经过重新编写才能使用。
  那么,如何通过pinpong来控制开源硬件呢?笔者借助了一个通用的串口通信协议Firmata。开源硬件会输入一个特定的固件,计算机发送命令给开源硬件,开源硬件执行命令后再反馈信息给计算机,这个过程的速度很快,如同直接控制开源硬件一样。
  2.支持硬件
  pinpong库将支持市场上绝大多数的开源硬件。pinpong库的设计,是为了让开发者在开发过程中不用被繁杂的硬件型号所束缚,而将重点转移到软件的实现。哪怕程序编写初期用Arduino开发,部署时改成了掌控板,只要修改一下硬件的参数就能正常运行,实现了“一次编写处处运行”。
  从表1可以看出,开源硬件的品牌虽然很多,但基本上可以分为Arduino(涵盖了拿铁熊猫和虚谷号等)、ESP32(包括ESP8266和掌控板等)、micro:bit和树莓派(涵盖了pcDuino和banana派等)这四个类别。笔者给这些开源硬件分别起了一个“别名”,即board_name,如下页表2所示。目前,pinpong库已经支持Arduino、虚谷号和掌控板,其他的开源硬件支持已经在规划中。
  3.基本用法
  如何让代码更加简洁,并且容易理解?以Arduino UNO为例,下页表3中的代码将点亮Arduino板载的LED灯(D13引脚)。
  从上述代码可以看出,初始化硬件只要正确输入硬件的品牌和型号即可。如果端口号省略,pinpong会自动扫描本机可用的所有串口,然后给硬件烧录特定的固件。这样一来,开源硬件的入门门槛降到了最低:只需要能辨别开源硬件的型号,并且知道其引脚的正确编号。
  4.基础对象
  pinpong的基础对象分为四种,分别为Board、Pin、Servo和I2C,具体说明如表4。
  控制I/O引脚,是开源硬件的最核心的功能。pinpong库中将引脚模式分为四种,分别为Pin.IN(输?模式)、Pin.OUT(输出模式)、Pin.ANALOG(模拟输入模式)和Pin.PWM(模拟输出模式)。不同的引脚模式,对应不同的读写方法,具体如表5所示。
  ● 结束语
  笔者很幸运地遇上了一个非常专业的创客团队,因而在短短的时间内,pinpong库成形并开始测试。笔者在0.3版上通过基本的功能测试,体验非常好。就在启动pinpong项目的这段时间内,笔者了解到更多人的需求,也越来越体会到开发pinpong库的价值。
  也许pinpong库还有很多不完善之处,但是笔者相信,有这么多一线教师和专业研发团队的支持,pinpong库一定会越来越好用,会助力我国乃至全球的信息技术教育的发展,让更多的孩子爱上编程,爱上开源硬件。
其他文献
我与开源硬件结缘于十年前,那时的开源硬件还是小众文化,在国内的传播刚刚起步。2011年左右,我在做DIS(数字化实验系统)的研发工作,常常往返于北京景山学校和北京师范大学之间,探寻DIS在中小学实验教学中的教学案例。那时候,吴俊杰老师刚到景山学校任教,跟北京师范大学项华教授在做T-Bare(基于艺术、研究和工程的技术教育)课题研究,从事国内早期STEAM与教育相关的探索工作。T-Bare項目在软硬
空巢老人的平安总是令人担忧,然而比这更令人担忧的,是空巢老人的心理问题。  张大爷老伴去世有两年了。张大爷身子骨还可以,但没什么爱好,仍自己单独过,有时自己做点饭,或在外面买点吃的勉强凑活了。最近半年,张大爷不知怎的总想起老伴,心情逐渐不好起来,总是郁闷、沮丧,感到孤寂,愁容不展,焦虑不安,长吁短叹,不思饮食,睡眠也不好,有时会哭泣、自责,自觉活着没意思,甚至想伤害自己。  空巢:不得不面对的生活
四月,从常州参加STEAM教育论坛回来,我在动车上看了一本讲述为大山深处的学生送午餐的书。书的名字让我很有感触——《免费午餐:柔软改变中国》。  作者邓飞是一名调查记者,十一年来用他锋利的眼和笔揭露中国社会的阴暗面。如今,他换以温柔的力量,发起名为“免费午餐”的公益项目,帮助山区学生免于饥饿。一夜之间,无数像你我一样善良的人们,用网络时代特有的方式,为山区学生送去一份份热腾腾的午餐。让我们真切地感
6月29日,云南省大理州巍山县农广校组织种养殖农村致富带头人共30人赴上海培训学习。此次培训采取理论学习和现场教学的方式,学习都市农业发展的新理念、新技术、新措施以及数字农业、智慧农业、设施农业的高效安全等方面的知識。组织学员参观孙桥现代农业园区、荷兰温室、表型育种平台、水培蔬菜工厂等。学员们表示此次学习收获很大,会将好的经验和做法带回去,结合本村实际,积极创新产业发展工作思路,做大做强集体经济,
随着教育信息化的不断推进与发展,各学段各学科在探索未来教室环境下的新型课堂教学方式的过程中,不断与未来教室环境融合,优化教学,创新教学形式。信息技术学科教学也需突破机房传统教学模式,利用优质数字教育资源及软件工具,开展未来教室环境下的信息技术课堂教学的研究。  未来教室融合了平板电脑、无线网络、互动式教学平台等资源,硬件环境完全区别于信息技术课堂的传统教室环境。要突破传统计算机设备的限制,把学习环
● 微课翻转  自我介绍下,我是重庆市聚奎中学的一名普通英语教师。2011年学校开始搞翻转课堂那会儿,我没有入选首发阵容。虽然没真刀真枪地干过,但我对翻转课堂还是有自己的认识的——把课堂需要讲的知识制作成微视频,然后让学生在课前观看,课堂做题。这样在课堂上得到信息反馈,了解学生的学习困难与问题,并针对问题进一步讲解和阐述。  这样的课堂正是我想要的形式,因而心里一直很羡慕那些给翻转班上课的同事。不
在我国的“2035年远景目标”中,教育的目标依然锚定“培养德智体美劳全面发展的社会主义建设者和接班人”。面向未来,在这一大背景下,我们有必要在“五育并举”的高站位上重新审视中小学信息技术课程。  在传统的认识里,信息技术课程的价值更多体现在对学生思维能力的提升上。信息处理、数据分析、抽象建模、算法编程……这一系列对学生计算思维的培养,让课程在“智育”方面彰显了独特的价值。  但当我们把视角拓展到“
钟永,优必选科技高级副总裁、优必选科技战略发展部负责人、优必选科技教育与消费者事业群总裁,现任深圳市青年联合委员会委员。曾在华为、埃森哲、腾讯等公司任职,具备丰富的战略咨询、投资、销售、产品策划、公司整体运营管理经验。2016年加入优必选科技,先后在公司董事会秘书办公室、产品研发部门任职,2018年起分管人工智能教育业务。  在新基建战略下,国家智能化进程全面加速,新型技术的发展带来大量就业机会的
摘要:网络与信息技术的发展,催生出创客与教育的结合,由此创客教师成为新型的教学岗位。本文基于职业教育中工业设计教学的视角,根据创客教育的特点,探索了创客教师的核心素质及培养新模式。  关键词:创客教育;创客教师培养;教育的创客;职业教育;工业设计  中图分类号:G710 文献标识码:A 论文编号:1674-2117(2016)10-0070-02  创客教育的主要特点  创客教育是各种教学活动、课
她出生在北京一个普通的家庭。刚出生时,她头颅硕大,是其他婴儿的几倍;她胖嘟嘟的,有其他婴儿几倍重。人们看到她,觉得她胖得可爱。  随着年龄的增长,她从人们的眼神里知道,胖并不是什么好事。胖,让她自卑;胖,让别人认为她又呆又笨,因为人们常说十胖九呆。于是,她开始拒绝去人多的地方,她害怕见到那些漂亮的女孩。她不能也不敢喜欢跳舞,更不喜欢上暴露她缺点的体育课,因为,她怕自己跑步的姿势成为同学的笑柄……