掌上单片机实验室 – RT-Thread 下实现运动功能(19)

掌上单片机实验室 – RT-Thread + ROS2 初探(25) 得知 ROS 升级为 ROS2 后,将 rosserial 升级为可以在单片机上运行的 Micro_ROS,大大提升了性能。关键是 RT-Thread 中包含了 Micro_ROS 软件包,正好可以尝试一下,。于是有了文中的经历。 阅读详情

一、背景

        前面已经完成基于 RT-Thread 的应用程序框架,并且尝试了加入简单的硬件测试功能,确定应用框架可以方便的实现应用功能。

        本篇开始,将前面基于 FreeRTOS 及Arduino 所做的小车实际驱动功能在 RT-Thread 应用框架下实现,编写更解决实际应用场景的练习程序,看看深入使用 RT-Thread 是否会遇到问题,相较于 Free RTOS及Arduino 有无亮点。

二、需求

        程序功能需求不变,此处就不再赘述,如有兴趣可以翻阅前面“掌上实验室 – 实现运动功能”一文。

        在 RT-Thread 框架下实现,基于 RT-Thread Studio 编程,主要是化解两者之间的不同,基于 RT-Thread 的特性及所提供的资源,实现原来 Arduino 下有但 RT-Thread下没有或不同的功能。具体如下:

  1. Arduino下实现C++的功能比较简单,只需按C++规则编写代码即可,规则不是很严格。基于 RT-Thread Studio 改如何编写?
  2. 由于 RT-Thread 没有提供以us为单位的读系统时间函数(micros()),需要替换为基于RT-Thread 的功能。
  3. 因为原来是直接使用的Arduino 库函数(PID库),只需安装后加入头文件即可。此处需要将库作为源程序加入工程。

        主要差别就是这些。

三、实施

3.1 程序中 C++ 类的使用

        原来程序中,由于 Arduino 可以使用类定义,故为了学习更多的内容,尝试用类定义的方式实现电机驱动功能,因为小车两侧的电机驱动需求是一样的,可以编写一套处理代码,同时供两侧电机使用。

        虽说使用函数用传递参数的方式同样能实现,但从学习角度,尝试一下C++的类概念也不错,且确实通过类实现可读性感觉更好一些。

        但 RT-Thread Studio 的资料中没有示例说明如何使用 C++,先按自己理解尝试了一些,未果。网上搜相关资料,有点启发,但不系统。

        经不断试错,总算搞定,梳理后大致

掌上单片机实验室 – RT-Thread 激活程序1(15) 在掌上单片机实验室硬件平台上,尝试应用 RT-Thread,这是第一个程序,使用 RT-Thread 官方的 RT-Thread Studio 开发环境,完成电机 PWM 驱动,涉及 PIN及 PWM 组件。 阅读详情

相关推荐

掌上单片机实验室 – RT-Thread 运行性能评估(21)

在 RT-Thread 下实现了小车的基础控制功能,但要判断 RT-Thread 是否适合这类实时性控制场景,需要检测评估一下其运行性能。从我的经验看,栈运行监测、外部中断响应时间、CPU占用率是需要测试的,因为这是基于 OS 编程需要关注的问题。实际测试后,感觉不错,我觉得可以应用于大多数场景!

embedream的专栏 1692

掌上单片机实验室 – RT-Thread 之RISC芯片尝试(22)

想尝试基于 RISC-V 架构单片机 CH32V307 跑 RT-Thread 程序,结果发现还不具备作为开发应用程序的条件,需要芯片厂家进一步完善支持,应该要做到或接近 STM32的支持水准,否则无法成为一个被开发人员接受的芯片,至少在跑 RT-Thread时。 估计芯片厂家苦于人手不足,建议厂家尝试发挥网络的力量,借鉴维基百科的机制,快速打造出符合实际开发需求的支持包,从而使芯片和系统都能为国人所接受。

embedream的专栏 1362

掌上单片机实验室 – RT-Thread 激活程序2(16)

本篇继续完成激活程序的后两部分,涉及 IO 中断及模拟量采集,IO中断所用的 Pin 组件已经由工程模板帮助安装了,此处按前一篇的方式添加 ADC 组件,验证一下前面总结的是否正确。

embedream的专栏 415

掌上单片机实验室 – 走出屏幕的 ROS 小海龟(27)

在上一步的基础上,完成了使用 turtle_teleop_key 节点控制虚拟和现实两个小海龟,将基于 micro_ros 软件包实现单片机和 ROS2 主机通讯的流程全部打通,后面就可以进一步尝试ROS2 的功能了。

embedream的专栏 975

掌上单片机实验室 – 基于 RT-Thread 框架的第一个应用(18)

基于 RT-Thread 应用程序框架,将前面实现的 RTT 激活程序加入到框架中,作为硬件测试功能,创建一个测试线程,将三个硬件激活功能作为基本测试操作,用串口指令操作执行。目的是感受一下 RT-Rhread 的多线程应用,以及线程间的同步、通讯功能。

embedream的专栏 263

RTT学习笔记3-时钟定时器管理

基本知识 RT-Thread 中,时钟节拍的长度可以根据 RT_TICK_PER_SECOND 的定义来调整,等于 1/RT_TICK_PER_SECOND 秒 获取时钟节拍 rt_tick_t rt_tick_get(void); 定时器分类 硬件定时器 软件定时器 触发方式分类 单次触发 周期触发 HARD_TIMER 模式 HARD_TIMER 模式的定时器超时函数在中断上下文环境中执行,可以在初始化 / 创建定时器时使用参数 RT_TIMER_FLAG_HARD_TIMER 来指定。 对

Car12 1027

rtthread详解

rt_thread详解rt_thread详解rt_thread详解rt_thread详解rt_thread详解

rt-thread-3.1.3_rtthread_RT-Thread_nano_rtthreadopenocd_RT-Threa

rtthread nano的模板,有基本的内核部分,可以完成线程调度、信号量传递等等

Ubuntu22.04+Docker一键部署Autoware Universe避坑指南(附鱼香ROS配置)

本文详细介绍了在Ubuntu22.04系统中使用Docker一键部署Autoware Universe的完整流程,包括鱼香ROS工具链配置、Docker环境优化及VSCode开发环境集成。通过实战指南帮助开发者快速搭建自动驾驶开发环境,解决常见部署问题,提升开发效率。

weixin_29254673的博客 414

电镀技术:微型制造的原子级加法工艺与核心优势

电镀是一种利用电解原理在基材表面沉积金属层的表面处理技术,其本质是通过电场控制溶液中金属离子的迁移与还原,实现原子级的可控沉积。这一过程的核心在于对电流密度、温度、添加剂等参数的精密调控,从而实现对镀层结晶结构、性能的“编程”。从技术价值看,电镀作为一种“加法制造”工艺,在微观尺度上具有无与伦比的保形性和材料灵活性,能够实现复杂三维结构的均匀覆盖与功能复合。在应用场景上,它尤其契合现代微型化制造的需求,例如在集成电路的铜互连填充、高密度PCB板微孔金属化、MEMS传感器电极制备以及柔性电子器件制造中发挥着不

weixin_42524842的博客 528

从想法到零件:手把手拆解一个汽车功能如何从PRD写到SSTS和CTS

本文详细拆解了汽车电子需求从市场文档(MRD)到零部件技术规范(CTS)的完整流程,以雨天自动关窗功能为例,展示了PRD、SSTS和CTS的编写要点与交互设计。文章重点解析了系统分解的艺术和零部件落地的精确参数要求,为汽车电子工程师提供了从概念到实现的全流程实践指南。

weixin_30300225的博客 481

【项目实战】小智AI MCP协议在IoT设备控制中的深度应用解析

本文深度解析小智AI MCP协议在IoT设备控制中的应用实践。通过MCP协议作为AI与物联网设备的翻译桥梁,实现大语言模型与ESP32等硬件的无缝通信。文章详细介绍了环境搭建、工具注册、消息路由机制,并以语音控制RGB灯光系统为例展示完整开发流程,为AIoT开发者提供实用指南。

oauth7security的博客 824

深入SVT SPI VIP配置:如何灵活控制CS间隔、数据帧大小与时钟频率(含代码片段)

本文深入探讨了SVT SPI VIP的高级配置技巧,包括精确控制CS信号间隔、突破数据帧大小限制以及动态时钟频率切换。通过实战代码片段和详细配置步骤,帮助验证工程师灵活应对复杂SPI协议验证场景,提升验证效率和覆盖率。特别适合需要处理非标准SPI时序和特殊数据帧的芯片验证项目。

weixin_27014595的博客 280

uniapp - 实现手机端H5网页直播功能效果,拿到后端推流地址或播放资源后进行前端的流畅播放和画面展示功能,uniapp实时推流/拉流直播系统详细教程(提供完整示例代码,一键复制开箱即用!)

uniapp,h5网页,手机端H5网页,uniapp h5直播功能页面,uniapp直播实时推送显示,uniapp h5直播怎么做,怎么使用uniapp去实现移动端手机H5直播,h5 vue+uniapp怎么做直播,uniapp中使用videojs构建H5直播播放器,uniappH5端怎么实现直播推流,uniapp如何实现直播,直播聊天功能,h5平台端直播用什么插件,uniapp手机网页直播用什么组件插件播放器,uniapp手机H5直播播放器详细教程,直播项目,怎么使用vue+uniapp怎么做H5实时直播

✅ 精选推荐文章 8792

XPATH注入漏洞检测工具汇总

环境 > Python3.7。

墨痕诉清风的博客 742

AI Agent开发大全第二十课-如何开发一个MCP(从0开发一个MCP Server)

大模型的MCP火了,可是无论是Claude官网本身自带Sample还是全网任何一本教程没有一个可以真正应用在生产环境中的。要么就是只能在本地以文件IO流的方式运行要么干脆连编译都出错,真正的mcp server和client是怎么编写的?如何运行在分布式环境?本教程就带大家真正从0开始以“AI计算食物热量“为例带大家真正学习mcp开发的全过程。

打造全国最全的AI Agent开发知识领域的博客 1802

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 掌上单片机实验室 – 基于 RT-Thread 框架的第一个应用(18)
下一篇: 掌上单片机实验室 – RT-Thread 下实现PID自整定(20)
嵌入之梦
博客等级 码龄21年 134粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入之梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值