赞
踩
这一段时间都在测试与使用飞特STS3215舵机,其中发现不少细节,觉得有必要记录下来,无论事他人借鉴,还是以后自己复查,都能有个比较全面认识。
本身测试使用的开发环境想用两种来着,都是基于HAL库开发,但是根据后来精力只在cubeIDE下测试了,使用情况如下,但是具体硬件使用的是正点开发板。
软件环境1:STM32cubeIDE 1.8.1
硬件芯片:STM32F407ZGT6(正点原子F4开发板)
这里说明调试过程中用的舵机软件,以及针对舵机STS3215进行说明,对比其他舵机,目前该款舵机唯一美中不足的地方,可能就是它太贵了,各个售卖平台基本100多RMB吧。
(1)调试过程中用到的飞特调试软件如下图:
(2)教程说明----有关舵机具体参数以及说明,如下链接,这里就不再陈述一遍,总之这款舵机还是蛮不错的。
https://blog.csdn.net/weixin_39873191/article/details/111106356
(3)教程说明----具体舵机调试软件下载以及使用请参考以下:
https://zhuanlan.zhihu.com/p/345309655
(4)或者直接使用我下载好的软件链接,不用去找了:
https://download.csdn.net/download/qq_22146161/83936368
(5)下载链接 在gitee上,没有用过的话需要先注册,这里如果注册完成的话,可以下载调试用的软件和官方提供的接口代码。
https://gitee.com/ftservo
(6)提供的软件资料以及针对STS3215协议等
https://download.csdn.net/download/qq_22146161/83937584
我们在使用舵机前,查看其基本参数,明确舵机可以工作在什么杨的环境等具体细节,还是蛮重要。这里大致需要知道的一些基本常识,或者说是对于舵机,需要了解的一些底层知识,以免拿到手里只觉得是一块物品。
(1)基础调试硬件
至少你需要以下硬件才能进行调试,或者编写代码之类的,否则只有个舵机,其实也做不了任何事情。
电脑、舵机、单片机、USB转接板,一些杜邦线,供电电源和单片机下载器。
(2)了解波特率
飞特这款舵机采用的是串口也就是uart通信模式,有多个波特率可设置,但是我们平时在使用单片机开发uart的时候,都是直接配置好了,很少去管细节的反面,但是细节才是魔鬼,只是知道波特率这么个事物,不了解其内部原理,总会有种云里雾里的感觉,你跟别人说的时候都没有底气。
简单来说,当我们说波特率为115200时,其实就是指1S会传输115200(bit)位,一般默认帧格式是:8个数据bit,1个停止bit,1个起始bit,总共10bit。
那么就是说1秒最多的帧数为:115200(bit)/10(bit)=11520(帧)
那么就是说1bit需要的时间为:1S/115200(bit)
用计算器算了下,结果图下图 。。。啊这。。
以下是我实际用逻辑分析仪抓到,数据如下图所示,起始位为低,停止位为高,上边有解析出来的04,即04=0000 0100 ,并且从图可以看出是从bit0开始发的。
参考链接(波特率基础原理):
https://blog.csdn.net/qq_40147893/article/details/106539081
参考链接(波特率每帧怎么回事):
https://blog.csdn.net/dagefeijiqumeiguo/article/details/68921820
(3)了解舵机协议
知道了波特率协议,而舵机又是根据波特率而来,具体可以参考上边链接STS3215协议。
简单说与舵机通信需要,对于舵机来说,这样的形势称之为舵机的数据帧,注意与波特率区分开,其中0xff是波特率115200的uart串口的一帧,而与舵机需要以下这些个数据作为一帧数据。
以“字头”,“ID”,“有效数据长度”,“指令”,“参数”,“校验和”的形式
(4)链接软件调试
在编写代码前,先不着急上单片机,而是使用飞特官方提供的软件多测试下,了解舵机性质,以方便对舵机有所了解。
以下为舵机物理链接图示。
以下为舵机软件调试界面。
在工作的时候,要完成以下四个功能,当然这里不会提供工作时用的代码,但是在对舵机进行测试时,将有关舵机部分代码单独拎了出来,本篇也是仅仅围绕这些功能,进行一系列测试,并且对测试过过程中发下问题做个记录,希望以后再遇到问题有所参考。
(1)零位校准
在实际使用过程中,无论安装在什么设备与机械结构上,都需要进行校准,使其在特定位置,根据舵机特性,当给舵机发送特定指令时,舵机会将当前位置标为2048,即180°的中间值,舵机本身能在0——360°之间转动,自己实现上述功能时,采用的是堵转方式,碰到物理结构硬件,认为停止的时候就是到了零点。
(2)堵转
在一些结构中,比如有开关门,或者蜘蛛玩具等运动系统中,就有可能发生堵转的情况,有时候堵转,我们希望舵机立刻反向运动,来反转夹手,或者损坏机械机构,至此有了堵转程序。
(3)读状态
有时候我们需要知道舵机测试在什么位置,以此来用单片机来判断接下来该执行什么样的动作。
(4)控制
我们需要舵机转动到某中角度,舵机我们就是需要它来转动到某些角度
由于发现与内容字数过多,于是将文章拆分,拆成多个节来编写
第一节只是对于基础知识铺垫
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。