一、背景
作为一个嵌入式应用的老工程师、爱好者,一直对 RTOS 有所关注,因为自己研发产品经历了从汇编到C语言,最终采用RTOS的完整过程,知道RTOS可以给产品的研发带来什么。
我是一个非科班计算机专业的工程师,尝试 RTOS 还是有些困难的,缺少相应的基础知识。但从产品的可靠性、可维护性出发,RTOS 又是必然趋势,故还是硬着头皮上了。
真正开始用之后,觉得付出还是值得的,它给编程带来的不一样的思路。
早期使用的是国外的 RTOS,RT-Thread 才出现时,还不敢选用。经过这些年的发展,RT-Thread日渐成熟,如今被大环境所推动,国产、开源的 RT-Thread 应该是最佳的成长时机。
出于兴趣(目前我已退休),我尝试了 RT-Thread,并参加了一次线下培训。有些想法,不吐不快,故写此文,供 RT-Thread 官方参考,也希望同样关注国产 OS 的朋友参与讨论,助力 RT-Thread 成为主流 RTOS之一。
二、线下培训需求分析
首先,对RT-Thread的线下培训需求做个简单分析,以此作为建议的基础,如果所做的需求不对,那所提建议自然也没有意义。
在如今网络如此发达的今天,尤其是手机的普遍应用,传统模式的线下培训应该有所改变,所有可以通过网络获取、在手机上浏览的内容,都不应该成为线下培训的内容,不应该浪费宝贵的线下培训时间,因为相对而言,线下培训的成本还是挺高的,主办方要投入场地费和人工、差旅费,参与者要额外消耗来回的时间。
那如今线下培训的需求到底是什么呢?
就RT-Thread而言,主办方肯定是为了推广,可这太宽泛,我觉得应该从参与者角度具体分析,只有准确知道参与者的需求,主办方才能够找到合适的形式和内容,达到自己的目的。
首先定位都有哪些人想参加线下培训:
1、在读相关专业学生,目的在于开阔眼界。
2、才入职的新人,目的是知识积累。
3、小企业的研发人员,单位内缺少交流对象,拓展自己的交友面。
4、正在使用RT-Thread的工程师,化解具体的技术问题。
对于上述有意愿参加线下培训的人而言,其需求应该是:
1、通过参与者之间的交流,知道都有哪些真实的应用?
2、快速了解RT-Thread如何使用?减少自己盲目摸索的时间。
3、通过面对面交流,化解自己尝试时所遇到的问题。
4、通过面对面交流,结交同行朋友,为日后相互帮助提供可能。
作为主办方,如果能满足上述人员的需求,就会促使更多的人想参加线下培训,从而达到推广的目的。如果通过线下培训可以让他们快速上手,从而敢于在产品研发中使用,就达到了培训的初衷。而通过参加培训形成相应的朋友圈,那产生的推广之力应该远大于官方培训人员的努力。
如何针对上述人员和需求进行线下培训呢?
三、建议
基于上述需求分析,结合我自己的经历,RT-Thread的线下培训建议按如下方式组织:
从商业规则考虑,将具体的产品应用内容作为培训素材不太合适;因为如果选择没有价值的产品应用,没有吸引力,缺少共鸣;而选择有价值的热门产品则会涉及到泄密和侵权等麻烦。所以,选择一个相对抽象的内容作为载体,重点放在能体现出RT-Thread的使用价值上。就像数学中的应用题,不考虑实用(否则就没有“鸡兔同笼”的经典题目了)。
所选择的抽象内容必须具备以下特征:
1)所涉及的知识无需专业基础,可以为大众所理解。
2)实施成本较低,具备配置的可能。
3)由于线下培训的空间及方式,所需要的空间也要小。
4)所产生的内容具备交流的内涵,有一定的趣味性,能促使相互间交流。
我觉得小车是最佳的素材,因为车的需求不需要任何培训就都有所了解。车可以运动,从而带来相应的趣味性。同时车的操控具备原生的实时性和多任务的需求,能最佳的体现出 RTOS 的特点(人机交互界面应用就不那么明显)。
但通常小车的使用会对场地有要求,且由于自身体积过大、易损,而不便于主办方配置。
很多年前,我针对“机器人足球FIRA”项目设计过一款小车底盘,设计初衷就是作为单片机编程控制的素材。体积只有7.5cm见方,而且将电机驱动、码盘反馈以及电源部分集成到底盘中,使用单片机的IO口即可驱动。
经过完善,使用锂电池供电,使用 USB 口即可充电,用杜邦线连接核心板即可驱动。
这样体积的小车可以在桌面上运行,化解了培训时的使用问题。单台小车及配套的部件可以放入12号标准纸箱(130 x 80 x 90mm),一个20寸行李箱可以放 20 个,按两个人一辆小车计算,一次培训准备 20 个小车可以对应 40 个人参与,主办方四处携带也不成问题。
小车底盘详细介绍见:
https://blog.csdn.net/embedream/article/details/115900690
以此小车底盘作为培训器材,基于两方面主题展开:
1、内核部分,作为RT-Thread基础
主办方提供已实现基础功能的完整控制程序工程,参与者只是消化和尝试改动,实际操作小车运动,以熟悉、掌握RT-Thread的功能和开发环境。
2、软件包部分,作为RT-Thread的特色
选择MQTT作为扩展的软件包,实现两个小车直接信息交互,完成小车相向而行的行为,从而熟悉RT-Thread软件包的使用,了解其特性及优势。
之所以选择上述内容,是因为我觉得内核是基础,必须掌握;而软件包是特色,需要推广。
具体而言:
上午安排内核部分的实验,2人一组,自己下载相应的程序,包括小车控制器上的程序及PC端的操控程序,并布置相应的练习作业,如修改程序中的任务交互方式,将邮箱改为队列、增加信号量等,根据参与者的水平自行确定做哪些练习。同时教会学员使用RT-Thread特有的Finsh功能,以增加学员对RT-Thread的接受度。
将培训者分成几个大组,组内相互交流,最好能推举一个组长,从而增加交流度;培训老师只是观察学员的实施情况,酌情选择表现好的学员登台展示。
最后,将修改过程序的小车集中在一起,由培训老师的PC发送操作命令给这些小车,观察小车的执行效果,从而给出评价。
下午做软件包部分练习,内容选择MQTT协议;作为以IOT为主要应用场景的RT-Thread,实现通讯是常用功能。
此实验内容是:两个小车为一组,相向而行,以最快速度接近,但不允许相碰,以结束后距离最近为胜者,距离相同用时短为胜者。
提供已完成的程序代码部分作为参考,培训老师展示一遍软件包的添加过程,学员自己完成软件包添加过程,之后自己选择直接使用示例代码或自行改写实现。
这个实验一方面让学员知道基于 RT-Thread 可以方便的使用所需的通讯协议,同时了解通讯所产生的延时特征以及可能产生的问题,在编程时如何化解。
最后所有的小车集中在一起PK,从而将所有学员调动起来,增加参与度,以达到培训的效果。
控制器首先选择 STM32F411CE 核心板,因为 STM32 支持的最为完善,成本也较低。和 PC 通讯可选择蓝牙模块或Wifi模块,市场上有很便宜的。MQTT实验可以选用 ESP8266 模块,成本也很低。小车底盘我可以赠送 20 套作为启动尝试,期望能帮助 RT-Thread 尽快成长。
后续可以根据想要合作的厂家,替换相应的MCU,将程序移植到新的 MCU 上,实验的内容不变,这样主办方的培训内容就有了连贯性和统一性,可以不断完善,而不是“打一枪换个地方”,无法积累。同时由于 MCU 的不断更新,又可以保持培训内容的新鲜度。
总之,线下培训过程全程无需讲师授课,需要传授的内容以及赞助厂家需要推广的内容,通过网络分享即可。培训过程重点是增加学员的参与度,以及为学员的提供展示平台,因为也许通过展示过程,为展示者提供后续更好的工作机会。
建议非常中肯,我们会考虑的
@RT-Thread小师弟
谢谢!静候佳音,希望能为推广 RT-Thread 出点力。
谢谢建议,可以留个联系方式方便进一步沟通吗?至于说硬件板卡这边,因为RT-Thread线下培训也带着一些RT-Thread商业伙伴推广的目的,所以硬件上是和商业伙伴密切相关的。