请选择 进入手机版 | 继续访问电脑版
用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4538|回复: 0

树莓派2b用python写的控制辉盛sg90舵机的代码

[复制链接]

12

主题

12

帖子

58

积分

注册会员

Rank: 2

积分
58
发表于 2016-7-15 14:13:56 | 显示全部楼层 |阅读模式
辉盛sg90舵机在诸多方面应用都十分多,今天就介绍一下用树莓派控制辉盛sg90舵机。
   1、 什么是舵机:
在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。舵机是一种俗称,其实是一种伺服马达。
     具体看图:
        

sg90舵机

sg90舵机
SG90
红 - 正
棕 - 负
橙 - 信号
2.     其工作原理是:
控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。当然我们可以不用去了解它的具体工作原理,知道它的控制原理就够了。就象我们使用晶体管一样,知道可以拿它来做开关管或放大管就行了,至于管内的电子具体怎么流动是可以完全不用去考虑的。
3.     舵机的控制:
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是这样的:
   0.5ms--------------0度;
   1.0ms------------45度;
   1.5ms------------90度;
   2.0ms-----------135度;
   2.5ms-----------180度;
(这只是一种参考数值,具体的参数,请参见舵机的技术参数)
舵机驱动的应用场合:
  1.高档遥控仿真车,至少得包括左转和右转功能,高精度的角度控制,必然给你最真实的驾车体验.
  2. 多自由度机器人设计,为什么日本人设计的机器人可以上万RMB的出售,而国内设计的一些两三千块也卖不出去呢,还是一个品质的问题.
   3.多路伺服航模控制,电动遥控飞机,油动遥控飞机,航海模型等
#!/usr/bin/env python
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.OUT)
p = GPIO.PWM(26, 50)
p.start(0)
try:
    while 1:
        for dc in range(0, 181, 10):
            p.ChangeDutyCycle(2.5 +10 * dc / 180)
            time.sleep(0.02)
            p.ChangeDutyCycle(0)
            time.sleep(0.2)
        for dc in range(180, -1,-10):
            p.ChangeDutyCycle(2.5 +10 * dc / 180)
            time.sleep(0.02)
            p.ChangeDutyCycle(0)
            time.sleep(0.2)
except KeyboardInterrupt:
    pass
p.stop()
GPIO.cleanup()

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则