#飞特STS3215舵机测试与使用记录--附带基础样例-记录笔记-第二节
前言说明
本篇分成两节来记录,由于发现与内容字数过多,于是将文章拆分,拆成两节来编写
第一节只是对于基础知识铺垫。
链接地址:
https://blog.csdn.net/qq_22146161/article/details/123336844?spm=1001.2014.3001.5501
第二节是针对具体功能的的实现等细节,以及其他注意的细节。
第三节,测试过程中的细节说明
实验环境
软件环境1:STM32cubeIDE 1.8.1
硬件芯片:STM32F407ZGT6(正点原子F4开发板)
需要了解的步骤
既然咱们要控制舵机,不可能一口吃成胖子,除非你是大神,否则都要一步步走,需要拆解流程,每一步的实现位后来奠定基础。
第一步 uart通信
飞特STS3215这款舵机是需要用uart通信,为此我们需要先调试代码,实现基本通信,这样才能与舵机通信,采用堵塞的方式,具体具体步骤如下
(1)新建工程,选择芯片
(2)配置调试与下载参数,基础操作,有疑问直接看代码
(3)选择uart,这里选择uart3进行配置
(4)配置时钟
(4)调试串口输出信息
配置完上述后,就可以尝试生成代码,之后主函数main内加入如下进行测试,随便写一些东西看看不能用串口助手收到,可以写完接收信息一起验证。
(5)调试串口接收信息
再接收时,主要通过回调函数来接收,我这里使用正点原子开发板,我只需要用跳线将uar3和232短接,然后用一根转串口线连再电脑上,就能用串口助手查看了。
在接收信息的时候,一个主要要开启接收buffer。
另一个时在接收回调函数内有所动作,我这里时收啥回啥。
(6)验证
如下图的硬件连接
如下图是串口接收数据的返回
第二步 按键控制和LED反馈系统
由此我们完成第一步,我们既然要控制舵机,需要输入,另外我们也需要反馈,知道我们到底输出成功与否,正好开发板上按键和LED都有,那么可以将按键当初输入,LED可以当成输出,看反馈,原本想用LED示意舵机运行位置的,后续想太麻烦了,就只是判断按键了。
所以我们的实验是通过按键扫描,来控制LED灯,看看是否有反馈。样例代码直接借用正点原子的,分为初始化和控制代码,以下位简单样例,测试控制部分。
可以看到就是按键控制灯的状态。
第三步 舵机控制
控制现在有了可以控制舵机了,引入飞特舵机的库,然后调用具体函数,具体功能后面在进阶里会详细说明,这只是调用具体函数直接使用。
具体硬件连接
代码部分,做了简单控制,和做了简单堵转。
代码链接
以下代码使用STM32cubeIDE打开,具体配置不再贴出,可以看代码。
第一步 uart通信
https://download.csdn.net/download/qq_22146161/84838942
第二步 控制和反馈系统
https://download.csdn.net/download/qq_22146161/84839176
第三步 舵机控制
https://download.csdn.net/download/qq_22146161/84839438
使用的舵机库
https://download.csdn.net/download/qq_22146161/84841220
视频演示
https://www.bilibili.com/video/BV1ob4y1H7N9/
代码步骤使用细节-进阶
上述只是基础样例,具体应用时,必然有更加复杂的逻辑,具体请看代码
(1)校准代码段的细节
具体校准的思想,请根据具体应用场景,根据结构来设计,我在工作中遇到情况,是结构转向一个方向,当堵转的时候就认为是到了零点位置,然后进行校准。
举个例子,家家户户都有门,当门关上的时候,没办法再往里关了,此时加入舵机,认为这个状态位零点,校准位2048这个数值。
(2)堵转代码段的细节
堵转逻辑,具体判断为扭矩,发下这个值反应是最为灵敏的,也考虑过再堵转时用电流或者电压,测试发现反应不是很理想。
(3)读取状态和控制
这两个部分已经蕴含在STS3215_function函数其中,值得说明,我做的这个样例只是读取按键状态,实际上是应该读取舵机位置,请看函数read_gate_status函数。
后续
再次说明这只是一个样例,很多实际功能需要根据情况开发,这里发现字数又过多了,于是分成下一章,用来记录测试舵机发现的细节
上一章: 第一章 对于基础知识铺垫
下一张: 第三章 遇到问题等总结