# 这就是一个控制舵机大概模式 自学记录
# 树莓派上运行精度还行,香蕉派上精度不足,非常不足。控制机器人之类必须要加pwm发生芯片
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import RPi.GPIO as GPIO
import time
import signal
import atexit
import sys
# 清理gpio口
atexit.register(GPIO.cleanup)
# 使用gpio22口
servopin = 22
# 设置gpio模式
GPIO.setmode(GPIO.BCM)
# 设置
GPIO.setup(servopin, GPIO.OUT, initial=False)
# 定义50HZ赫兹
gp = GPIO.PWM(servopin,50)
# 从0 开始
gp.start(0)
# 先休息2毫秒?
time.sleep(2)
x = 0
def l(p):
"""设置0-180度 每15度一算占空比"""
for i in range(0, 181, 15):
x1=2.5 + 10 * i / 180
p.ChangeDutyCycle(x1)
time.sleep(0.1)
p.ChangeDutyCycle(0)
time.sleep(0.2)
#print i
def r(p):
"""设置180-0度 每15度一算占空比"""
for i in range(181, 0, -15):
x2=2.5 + 10 * i / 180
p.ChangeDutyCycle(x2)
time.sleep(0.1)
p.ChangeDutyCycle(0)
time.sleep(0.2)
#print i
while(True):
"""循环上面过程。其实就是舵机 180度 来回转"""
x+=1
print 'change...', x
l(gp)
print 'change...', x + 1
r(gp)