Closed Soil-L closed 2 years ago
欢迎来提交 PR
欢迎来提交 PR
我目前在构思,不过我看了一下,比较大的问题出在编码器部分,这个框架在设计上就是以脉冲编码器为基础的,比如测速的原理是在引脚中断中改变encoder.paulse_count,然后在外部调用encoder.c中的一下代码来计算转速
rt_int16_t encoder_measure_cps(encoder_t enc)
{
RT_ASSERT(enc != RT_NULL);
// return count per second
if((rt_tick_get() - enc->last_time) < rt_tick_from_millisecond(enc->sample_time))
{
LOG_D("Encoder waiting ... ");
return enc->cps;
}
rt_int32_t diff_count = enc->pulse_count - enc->last_count;
enc->cps = diff_count * 1000 / enc->sample_time;
enc->last_count = enc->pulse_count;
enc->last_time = rt_tick_get();
return enc->cps;
}
所以如果要加入can通信的编码器的话,得修改一些底层的结构,不知道是否合适?
@sogwms @wuhanstudio 有空来看下没?
@Soil-L 我觉得是个很棒的想法。可以仿照VESC和Odrive 做一个RT-Thread的轻量化的移植模块,目前我想做这么个东西,欢迎联系。
@Soil-L 可以改,欢迎提PR
当前rt-robot还处于很初级的阶段,期待框架性的改进和填充
框架如果觉得不合适欢迎提 PR 优化,毕竟框架也是希望适配更多设备
@sogwms @wuhanstudio 好的!
现在有一些电机(比如大疆的M3508电机)配套有电调,然后通过can与电调通信,同时控制多个电机的电流,并获得电机的转速和电流。因此希望添加基于can通信的motor和encoder模块。