开源硬件项目教程——3.常用软件对比分析

发布于 2021-04-08 11:46



不知道各位老师在上课的时候有没有遇到过突然间软件连不上网络或者是无法连接硬件的时候,比如Scratch+wedo2.0的课程模式是不是偶尔出问题?我们上课最忌讳的就是软件出问题,学生们都到齐了,软件不工作,如何向家长交代?令人十分尴尬,同样出问题的还有硬件,乐高EV3停产了,器材官方不再维护,可是机构刚刚把几年的课程设计完毕,继续使用如果手里没有备用器材如何解决?不用,那购置新器材?一笔大的开销不说,关键器材太鸡肋,重新设计课程还是得重头来。


给大家看几张图片,韩老师一直在设计机器人相关产品,有时也会用到ST公司的单片机,2020年下半年芯片就开始全面涨价了,2021年全球8寸晶圆短缺,导致单片机价格也疯涨,原来一片STM32F103RCT6主控的价格是5元左右,现在已经涨到五百多了,注意是五百多一片!!!涨幅超过一百倍,好在有国产的替代产品,就是稳定性稍差一些。




以前觉得芯片涨不涨价的和我关系不大,我们用的单片机都是将近200纳米的,未曾想到头来对自己影响确实不小,所以说了这么多,给我的触动挺深的,无论是软件还是硬件,技术握在自己手中才安心,大家不要觉得不可能,我们现在做的工作实际上就是让更多的学生,从小喜欢上科学,了解科学,将来有可能进入科研或者一些重大技术领域,我们也算间接的为国家出力了,所以个人还是觉得这项工作挺有意义的,大家觉得呢?




扯远了,回头说开源体系,开源体系实际上包含软件和硬件,下面就将常用的开源软件分分类,这些都是我用过并且觉得比较稳定的,不涉及任何广告。


一、Scratch类


目前最为流行的图形化编程软件,抛开政治因素,不得不承认美国麻省理工学院发明的这个软件确实太棒了,对学生的编程启蒙绝对是利器,但是由于Scratch社区出现某些因素,所以Scratch3.0有些功能在国内使用起来不是他别方便。好在国内很多科技公司,继承了Scratch的衣钵,并且能够免费提供给国内使用,这点也非常不错,当然还有自称是完全自主研发的图形化编程软件,实际上底层也都是参考Scratch的架构设计的。



比如,有Dfrobot公司设计mind+软件,简直好用到起飞,我在2013年就开始关注这个软件,那时候他们应该是国内第一个图形化编程的公司。软件分为三个模式,实时模式、上传模式、Python编程模式,每个模式使用起来非常顺畅,最令人欣喜的是,软件内部包含上百种传感器、执行器、控制器,连大疆无人机都融合到软件中了,未来想开设无人机编程课的老师可以尝试一下。还有一个非常重要的因素就是Dfrobot公司的包容态度、开源精神,很多硬件产品他们直接提供原理图、程序源代码、社区支持,使用Mind+软件也可以驱动市面上一些常用的硬件设备,如果你手头比较紧,暂时可以不够买Df家的硬件,不过他们的硬件设计也确实很用心,从产品上能看到Df的严谨的做事精神,虽然他们家的传感器很贵,大家还是多多支持,这样才能把这个生态持续下去(PS:我真的不是做广告,就是分享一下个人使用心得而已)




在mind+之前,我一直使用makeblock公司的mBlock,市面上流行的mbot机器人就是他们设计的,老板西北工业大学飞行器专业毕业,后来软件升级到慧编程了,还有APP兼容平板,我不使用它的原因,记得当初是因为软件好像没办法和硬件直接进行通讯或者互动了,必须借助变量,我觉得太麻烦了,对低龄儿童无法理解变量,因此就放弃使用了,不知道现在更新至什么程度了,这个问题和他们技术也反应过,不了了之了,这点我还是欣赏DFrobot,社区或者社群或者邮件有问题反馈给他们,他们总能第一时间给你一个测试结果,或者安排下一批软件处理掉这个BUG。




再就是深圳小喵科技的kittenblock软件了,这个软件早前用过一段,对microbit兼容比较好,详细的没深入使用,大家有兴趣可以了解一下,总之选择软件时后面一定要不断更新迭代才行,无人维护或者联系不到维护人员的尽量不要选择了,同时软件配套的社区(群)也十分重要。关于Scratch类型的软件就推荐这三种。




二.米思奇软件


米思奇(mixly)为什么把它单独列出来呢,它是由北师大的傅博士团队设计的,当然底层好像也是借鉴了谷歌blockly模式,现在各大考级比赛很多都使用米思奇,MIXLY和Scratch类型的软件最大的区别是什么呢?


Scratch类型的软件互动性强,可以实现软硬件实时互动、动画制作,但是MIXLY则没有这些功能,它的强大之处在于上传模式,它可以设计比较复杂的机器人程序,编程方式接近于单片机C语言开发,通俗来说,它就是C、C++语言的变种,目前也兼容Python语言,为很多不会代码编程的人,提供了制作复杂项目的可能,它集中的传感器执行器更多、更复杂,市面上很多公司也开发了对应的库文件,有能力的老师也可以自己写库,软件生态一般化,社区基本没建立起来,QQ群讨论也比较一般,很多问题需要自己去摸索,这是不足之处。





韩老师对于四年级开设的电路课、物理课、物联网课程都是使用mixly软件进行的。


三.代码类


首先说Python代码编程,目前很多老师开课都在使用Python自带的编辑器,这个编辑器使用起来稍微麻烦一些,安装也不是很容易,需要添加环境变量等内容,增加了使用门槛。这里推荐大家使用MU编辑器。Mu 是一个给初学者使用的 Python 编辑器,它旨在使学习体验更加愉快。它使学生能够在早期体验成功,这在你学习任何新知识的时候都很重要。如果你曾试图教学生如何编程,你会立即把握到 Mu 的重要性。大多数编程工具都是由开发人员为开发人员编写的,不管他们的年龄如何,它们并不适合初学者。然而,Mu 是由老师为学生写的。我用的是国内Kittenbot团队改进版本的MU编辑器,修复了若干BUG,用起来挺清爽。



这个软件有几种模式,基本上我们用到的Python模式都包含在内了,特别惊喜的是它可以直接控制ESP系列的主控,这样意味着它可以控制硬件,韩老师正在研发Python系列机器人编程课,通过Python控制机器人,用的就是MU软件。



接着在说Arduino IDE,大家可能不知道,Arduino开源体系中最重要的其实是软件架构,无论是UNO、NANO、ESP32、Microbit主控都是基于Arduino的架构的,因此Arduino IDE内部编写的C/C++才是开源体系的鼻祖,Python控制机器人表面上用的是Py,实际上也是把Py翻译成C/c++进行编译的。因此想要在机器人这一领域发展,建议搭建一定学一学在Arduino IDE中编程,对了四级考试也有C语言编程部分。




以上就是几类常用的软件,其实软件也有个人使用习惯的问题,我找到这几种都是我在上课中使用过的,比较稳定的才推荐给大家。欢迎点赞,转发,让更多想学习机器人技术、开源硬件技术的朋友看到这篇文章,谢谢大家。



相关资源