RT-Thread-packages / rt-robot

a platform in creating new exciting robots
Apache License 2.0
112 stars 62 forks source link

希望添加基于can通信的motor和encoder模块 #33

Closed Soil-L closed 2 years ago

Soil-L commented 4 years ago

现在有一些电机(比如大疆的M3508电机)配套有电调,然后通过can与电调通信,同时控制多个电机的电流,并获得电机的转速和电流。因此希望添加基于can通信的motor和encoder模块。

yqiu2018 commented 4 years ago

欢迎来提交 PR

Soil-L commented 4 years ago

欢迎来提交 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通信的编码器的话,得修改一些底层的结构,不知道是否合适?

yqiu2018 commented 4 years ago

@sogwms @wuhanstudio 有空来看下没?

MRAZXU commented 4 years ago

@Soil-L 我觉得是个很棒的想法。可以仿照VESC和Odrive 做一个RT-Thread的轻量化的移植模块,目前我想做这么个东西,欢迎联系。

sogwms commented 4 years ago

@Soil-L 可以改,欢迎提PR

sogwms commented 4 years ago

当前rt-robot还处于很初级的阶段,期待框架性的改进和填充

wuhanstudio commented 4 years ago

框架如果觉得不合适欢迎提 PR 优化,毕竟框架也是希望适配更多设备

Soil-L commented 4 years ago

@sogwms @wuhanstudio 好的!