请教一下机器狗的电机控制
最近在做一个使用STM32来控制机器狗,不是ROS,只是普通的玩具狗,需要控制四个电机完成正转反转跳舞的动作,控制电机的时候还要控制发出音乐,LED闪烁,呼吸灯,舵机转动等任务同时执行,并且执行一个动作串的时候,每一个任务要达到绝对的同步,这个时候问题就出现了,用Dleay来控制电机的话可以实现精准的转动时间控制,但这样就每个任务都要顺序执行,无法同步,所以请教下各位 我习惯弄个类似滴答时钟来带节奏。。。 用上RTOS;要不利用系统滴答时钟,主程序顺序扫描结构,根据标志位来判断子程序是否执行 不使用RTOS也是可以的,状态机就行 简单的并行任务,我觉得论坛里那个小小状态机就可行 用状态机划分时间片 shower.xu 发表于 2019-3-8 09:16简单的并行任务,我觉得论坛里那个小小状态机就可行
哪个麻烦能给下链接吗 我最近在用一个stm32控制3个步进电机
开3个定时器,用定时器的pwm控制,一个脉冲一个步进(对驱动器,驱动器再细分)
这样可以交叉,几乎是同步的动作(为什么不说绝对,因为操作总是有顺序性的)
应该就是你的问题的一种解决方式 kevincoooool 发表于 2019-3-8 15:06
哪个麻烦能给下链接吗
https://www.amobbs.com/thread-5508723-1-1.html?_dsign=7fe5c78b shower.xu 发表于 2019-3-8 15:25
https://www.amobbs.com/thread-5508723-1-1.html?_dsign=7fe5c78b
多谢- -其实我现在就是用的这个调度 还有个思路就是把要做的各种事情做成动作表,表里存的是某一时刻要控制电机或者要亮灯的操作。做这样的表,数据和逻辑分开,你甚至可以做个动作编辑器来生成这个表,不用改程序了。游戏行业都是这么做的,动作树或者行为树了解下。这样你的程序就非常简单了,只管根据表循环做就好了 我这个方法还有个好处就是可以实现同步。要是rtos的话会需要线程同步,很麻烦 nanfang2000 发表于 2019-3-9 09:23
还有个思路就是把要做的各种事情做成动作表,表里存的是某一时刻要控制电机或者要亮灯的操作。做这样的表, ...
尝试用状态机下包含子状态机应该可以做到行为树那样的感觉 kevincoooool 发表于 2019-3-9 14:13
尝试用状态机下包含子状态机应该可以做到行为树那样的感觉
你这是顺序播放,没有条件判断,也没有状态回跳,实际不需要树结构了,弄成顺序表执行就好
页:
[1]