【RT-Thread作品秀】基于RTT的可拓展遥控小车
作者:李泽彬
概述
近年来,随着信息技术的不断发展,有越来越多的小朋友们开始学习信息技术,开始学习编程。编程需要一个良好的平台,降低儿童的入门门槛,同时也要有足够的吸引力,能够吸引儿童进行创作,最后需要有足够的大的平台,能尽可能的实现儿童的各种类型的创意。基于以上的需求,我设计了一套基于RTT ART-pi的可拓展遥控小车的方案。首先RTT ART-pi是RTT团队开发的开源硬件平台,RT-Thread团队为其搭配了丰富的SDK包,极大的降低了上手难度。其次,对于儿童来说,遥控车,永远是一个极富吸引力的平台,同时,遥控车的可拓展性也很强,能够满足儿童不同的创意。
开发环境
硬件:ART-Pi H750 XB
RT-Thread版本:RT-Thread 4.0.3
开发工具及版本:RT-Thread Stduio
RT-Thread使用情况概述
内核部分:调度器,信号量,消息队列。
调度器:创建多个线程来实现不同的工作。
信号量:用来同步线程。
消息队列:用来实现线程之间传递的数据。
硬件框架
,主控采用了基于STM32H750的ART-Pi开发板,为了实现上述方案,我设计了一款拓展版。首先拓展板集成了art-pi接口,能够接入ART-Pi平台。其次,为了接入更多的开源设备,我设计了Arduino接口,能够方便的接入各类Arduino模块,让小车的可拓展性进一步提升。驱动方面,采用了两颗TB6612fng,体积小巧。遥控采用了开源的SONY PS2遥控手柄。
软件框架说明
软件模块说明
Led_thread_entry:
led线程,用于调度板载led实现500ms翻转
oled_thread_entry: OLED刷新线程,用于刷新OLED
key_thread_entry:按键处理线程,用于按键处理
Scan10ms_thread_entry:10ms扫描线程,用于每隔10ms对按键、PS2遥控器进行扫描
PS2_thread_entry:PS2手柄处理线程,用于处理PS2手柄得指令
PS2_Anolog_thread_entry:手柄模拟杆接收处理线程,用于处理模拟杆信息
演示效果
比赛感悟
上得来终觉浅,绝知此事要躬行。陆游的这首诗,完美的诠释了我在这次比赛中的收获.
我现在是一名信息管理与信息系统专业得大二学生,在疫情在家期间,第一次接触到了RT-Thread,了解到RTOS得相关概念。我通过RT-Thread文档助手进行了理论学习,了解了线程、信号量、消息队列等基本得概念。但是始终没有对RTOS有一个全面得了解。就是感觉都懂,但却有不懂这样迷茫得概念。
通过这次活动,我把最近所学得知识进行了实践,把线程调度、信号量、消息队列等理论知识进行了实践。
最后,还是要感谢活动主办方,提供了这个良好得平台,让我能够在这个平台上,学习相关的知识,发挥自己的创意。