利用Micropython使用舵机SG90(已封装)

一.舵机的分类

  1. 数字舵机

  1. 模拟舵机

其中数字舵机只需要传递一次信号,而模拟舵机则需要不断地传递信号。数字舵机的反应快,角度更为精准,无反应的范围小,但所需要的动力更大(相较于模拟舵机)。

二.sg90的外观及接线方法

这是网上常见的sg90的电机图片,可以看出sg90电机引出了三根线:电源线(红线),GND线(棕线),数据线(黄线)。

三.sg90舵机的相关参数

其中,sg90的转动范围为0°—180°

四.sg90舵机驱动的原理

相较于其他模块,sg90的驱动非常简单,其驱动取决于高电平t在整个周期T(20ms)内所占的时间,即通过不同脉宽的pwm信号,来实现对sg90舵机的驱动。

五.代码编写

microPython内置了Pin模块和PWM模块,这使得我们对代码的编写轻松了许多,代码编写的依据仍是第四点的“舵机输出转角与输入信号脉冲宽度的关系”。

from machine import Pin,PWM
import math
import time
class SERVO:
    
    def __init__(self,pin,freq=50):
        '函数的初始化'
        '参数:引脚,频率'
        self.pwm=PWM(pin,freq=freq,duty=0)
        self.freq=50'pwm引脚的频率,50hz正好对应20ms'
        self.Min_fx=0'设定最小的转动角度'
        self.Max_fx=180'设定最大的转动角度'

    def servo_writefx(self,degrees=None,radians=None,sleep=0):
        '方法函数,使得舵机转过指定角度,需要用关键字的指定来设定参数。'
        '参数:角度,弧度(二者任选一),舵机sleep的时间(单位为ms)'
        if degrees==None:
            degrees=math.degrees(radians)

        if degrees>self.Max_fx or degrees<self.Min_fx:
            return 
        Duty=int((degrees/90+0.5)/20*1023)
        self.pwm.duty(Duty)
        time.sleep_ms(sleep)

项目链接:https://wokwi.com/projects/356203385540533249

六.参考文献

单片机——SG90舵机工作原理》——https://blog.csdn.net/qq_41873236/article/details/116353829理

舵机的基本了解以及数字舵机和模拟舵机的区别》——https://blog.csdn.net/xiantiaoop/article/details/106118817

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MicroPython是一种精简版的Python编程语言,专门用于嵌入式系统和物联网设备。它提供了一种简单而高效的方式来控制各种硬件设备,包括舵机。 要使用MicroPython控制舵机,你需要连接舵机到你的硬件平台上(如Arduino、ESP32等),然后使用MicroPython的GPIO库来控制舵机的信号线。 以下是一个使用MicroPython控制舵机的示例代码: ```python from machine import Pin, PWM import time # 设置舵机信号线连接的引脚 servo_pin = Pin(4) # 创建PWM对象 pwm = PWM(servo_pin) # 设置PWM频率和占空比 pwm.freq(50) # 设置频率为50Hz pwm.duty(40) # 设置占空比为40% # 等待一段时间 time.sleep(2) # 停止PWM输出 pwm.deinit() ``` 在上面的示例中,我们首先导入了`machine`模块中的`Pin`和`PWM`类。然后,我们创建了一个`Pin`对象来表示舵机信号线连接的引脚,并创建了一个`PWM`对象来控制舵机的PWM输出。 接下来,我们设置了PWM的频率为50Hz(舵机通常使用50Hz的频率),并设置了占空比为40%(具体数值可能因舵机而异)。 然后,我们等待了2秒钟,让舵机转动到指定位置。 最后,我们调用`pwm.deinit()`方法停止PWM输出,释放资源。 这只是一个简单的示例,你可以根据具体的舵机型号和需求进行更复杂的控制。请注意,具体的引脚和舵机控制方式可能因硬件平台而异,请参考你所使用的硬件平台和舵机的文档进行配置和控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值