大数跨境
0
0

【外设移植】Ai-WB2+舵机控制(SG90)

【外设移植】Ai-WB2+舵机控制(SG90) 安信可科技
2024-10-08
1
导读:更多作品请查看安信可社区

以下作品由安信可社区用户

King6688制作



01
SG90舵机介绍


首先介绍说一下什么是舵机。舵机是一种位置(角度)伺服的驱动器。适用于一些需要角度不断变化的,可以保持的控制系统。SG90就是舵机的一种。

舵机内部有一个基准电压,单片机产生的PWM信号通过信号线进入舵机,与舵机内部的基准电压作比较,获得电压差输出。电压差的正负输出到电机驱动芯片上,从而决定正反转。开始旋转的时候,舵机内部通过级联减速齿轮带动电位器旋转,使得电压差为零,电机停止转动。

SG90舵机的工作电压一般为4.8V~ 6V,通常使用5V供电,最大扭矩为1.6kg/cm。控制信号采用50Hz PWM脉冲。分为180度版本和360度版本,外观上看180度的内部带挡板,360度的则没有。其有三个引脚,分别是红线(VCC),棕线(GND)和橙线(信号线)。
      


SG90舵机的注意事项:

使用SG90舵机时需要注意以下事项:

1. 确保使用的电源符合舵机的工作电压要求。

2. 确保舵机的接线正确,避免接反或短路等情况。

3. 在使用过程中,避免超过舵机的工作角度范围,以免损坏舵机。

4. 在使用过程中,避免过度负载,以免损坏舵机。

5. 在使用过程中,避免过度震动,以免影响舵机的正常工作。



02
移植过程


PWM驱动规则
SG90舵机采用50Hz的PWM波驱动,需要的PWM高电平在0.5ms~2.5ms之间,脉冲宽度为20ms:

                         


180度和360度的区别:

180度的舵机可以控制角度

360度的舵机只能控制正反转和速度


驱动逻辑


180度:

t = 0.5ms————转动 0 °

t = 1.0ms————转动 45°

t = 1.5ms————转动 90°

t = 2.0ms————转动 135°

t = 2.5ms————转动180°


360度:

t = 0.5ms————正转最大转速

t = 1.5ms————不转

t = 2.5ms————反转最大转速



03接线


AI-WB2-32S开发板

SG90

GND

棕线(GND)

5V

红线(VCC)

GPIO4

橙线(信号线)



04
算法简介


PWM 频率 = WB2的BCLK频率80MHz ÷ 分频Divider ÷ 周期Period ,即:80000000 ÷ 80 ÷ 20000 = 50Hz
// 根据图上的时间,计算出对应的threshold
/** 占空比,占空比是指高电平在一个周期之内所占的时间比率:
* 转动0度(-90度)需要的占空比为:   0.5/20 = 2.5%
* 转动45度(-45度)需要的占空比为:  1.0/20 = 5%
* 转动90度(-0度)需要的占空比为:  1.5/20 = 7.5%
* 转动135度(45度)需要的占空比为:2.0/20 = 10%
* 转动180度(90度)需要的占空比为:2.5/20 = 12.5%
* Period为20000时,带入以上公式,得出对应的高电平时间分别为:
* 20000 * 0.025 = 500
* 20000 * 0.05 = 1000
* 20000 * 0.075 = 1500
* 20000 * 0.1 = 2000
* 20000 * 0.125 = 2500

05
关键代码


        PWM_Smart_Configure2(PWM_IO4, 80, 20000, 500);        PWM_Channel_Enable(PWM_IO4);        vTaskDelay(pdMS_TO_TICKS(2000));        PWM_Channel_Disable(PWM_IO4);        vTaskDelay(pdMS_TO_TICKS(2000));
PWM_Smart_Configure2(PWM_IO4, 80, 20000, 1000); PWM_Channel_Enable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Channel_Disable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000));
PWM_Smart_Configure2(PWM_IO4, 80, 20000, 1500); PWM_Channel_Enable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Channel_Disable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000));
PWM_Smart_Configure2(PWM_IO4, 80, 20000, 2000); PWM_Channel_Enable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Channel_Disable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000));
PWM_Smart_Configure2(PWM_IO4, 80, 20000, 2500); PWM_Channel_Enable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000)); PWM_Channel_Disable(PWM_IO4); vTaskDelay(pdMS_TO_TICKS(2000));




06
效果视频


(用的IO3,凑合看吧~~
【Ai-WB2-32S驱动SG90舵机-哔哩哔哩】 
https://b23.tv/5VUodni




微信改版,容易错过最新资讯和福利?

快将“安信可科技”设为星标

可以第一时间接收小安的推送!






往期回顾

低能耗、低时延、快速度,星闪开发板 Ai-BS21-32S-Kit 

开源硬件新鲜玩:小安派-Eyes-S1/S2多功能开发板

10公里!超远距离传输的LoRa模块上架





安信可更多产品信息可进入以下链接查阅:

●开发资料:https://docs.ai-thinker.com/

●官方教程:https://blog.csdn.net/Boantong_

●安信可官网:www.ai-thinker.com

●安信可社区:https://bbs.ai-thinker.com

●业务咨询请联系:18022036575


【声明】内容源于网络
0
0
安信可科技
全球领先的联网模组、智能家居等物联网硬件方案提供商。
内容 393
粉丝 0
安信可科技 全球领先的联网模组、智能家居等物联网硬件方案提供商。
总阅读94
粉丝0
内容393