Merge pull request #29 from egoistka/sweep-cleanup
Fix typo and inline map() for improved readability in Sweep.py
This commit is contained in:
@@ -7,39 +7,38 @@
|
||||
########################################################################
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
OFFSE_DUTY = 0.5 #define pulse offset of servo
|
||||
SERVO_MIN_DUTY = 2.5+OFFSE_DUTY #define pulse duty cycle for minimum angle of servo
|
||||
SERVO_MAX_DUTY = 12.5+OFFSE_DUTY #define pulse duty cycle for maximum angle of servo
|
||||
OFFSET_DUTY = 0.5 # define pulse offset of servo
|
||||
SERVO_MIN_DUTY = 2.5 + OFFSET_DUTY # define pulse duty cycle for minimum angle of servo
|
||||
SERVO_MAX_DUTY = 12.5 + OFFSET_DUTY # define pulse duty cycle for maximum angle of servo
|
||||
SERVO_DELAY_SEC = 0.001
|
||||
servoPin = 12
|
||||
|
||||
def map( value, fromLow, fromHigh, toLow, toHigh): # map a value from one range to another range
|
||||
return (toHigh-toLow)*(value-fromLow) / (fromHigh-fromLow) + toLow
|
||||
|
||||
def setup():
|
||||
global p
|
||||
GPIO.setmode(GPIO.BOARD) # use PHYSICAL GPIO Numbering
|
||||
GPIO.setup(servoPin, GPIO.OUT) # Set servoPin to OUTPUT mode
|
||||
GPIO.output(servoPin, GPIO.LOW) # Make servoPin output LOW level
|
||||
|
||||
p = GPIO.PWM(servoPin, 50) # set Frequece to 50Hz
|
||||
p = GPIO.PWM(servoPin, 50) # set Frequence to 50Hz
|
||||
p.start(0) # Set initial Duty Cycle to 0
|
||||
|
||||
def servoWrite(angle): # make the servo rotate to specific angle, 0-180
|
||||
if(angle<0):
|
||||
if(angle < 0):
|
||||
angle = 0
|
||||
elif(angle > 180):
|
||||
angle = 180
|
||||
p.ChangeDutyCycle(map(angle,0,180,SERVO_MIN_DUTY,SERVO_MAX_DUTY)) # map the angle to duty cycle and output it
|
||||
dc = SERVO_MIN_DUTY + (SERVO_MAX_DUTY - SERVO_MIN_DUTY) * angle / 180.0 # map the angle to duty cycle
|
||||
p.ChangeDutyCycle(dc)
|
||||
|
||||
def loop():
|
||||
while True:
|
||||
for dc in range(0, 181, 1): # make servo rotate from 0 to 180 deg
|
||||
servoWrite(dc) # Write dc value to servo
|
||||
time.sleep(0.001)
|
||||
for angle in range(0, 181, 1): # make servo rotate from 0 to 180 deg
|
||||
servoWrite(angle)
|
||||
time.sleep(SERVO_DELAY_SEC)
|
||||
time.sleep(0.5)
|
||||
for dc in range(180, -1, -1): # make servo rotate from 180 to 0 deg
|
||||
servoWrite(dc)
|
||||
time.sleep(0.001)
|
||||
for angle in range(180, -1, -1): # make servo rotate from 180 to 0 deg
|
||||
servoWrite(angle)
|
||||
time.sleep(SERVO_DELAY_SEC)
|
||||
time.sleep(0.5)
|
||||
|
||||
def destroy():
|
||||
|
||||
Reference in New Issue
Block a user