User Tools

Site Tools


servoclass-py

servoclass.py

external functions for motors control

#!/usr/bin/env python

"""servoclass.py: connects to usbport and defines the movement of servo motors"""

import serial, glob


### assign arduino's serial port
try:
    portmotor = glob.glob("/dev/arduino-motors")[0] # as assigned in udev rules /etc/udev/rules.d ; http://hackaday.com/2009/09/18/how-to-write-udev-rules/
except IndexError:
    portmotor = glob.glob("/dev/ttyUSB0")[0] # fall back to a default USB address
# portled = glob.glob("/dev/tty*")[0]
print "portmotor:", portmotor
### set up serial baud rate
sermotor = serial.Serial(portmotor, 9600, timeout=1)

class Servo:
    def __init__(self, servoID):
        self.servoID = servoID
        self.stop() # when initiated, stop!

    def move(self, speed):
        self.speed = speed
        if 0 <= self.speed <= 180:
            sermotor.write(chr(255))
            sermotor.write(chr(self.servoID))
            sermotor.write(chr(self.speed))
        else:
            print "Servo position must be an integer between 0 and 180.\n"
        
    def stop(self):
        self.move(90)
        #print "stop (90)"

    def down_slow(self):
        self.move(100)
        #print "down_slow (100)"

    def down_medium(self):
        self.move(110)
        #print "down_medium (110)"

    def down_fast(self):
        self.move(120)
        #print "down_fast (120)"

    def up(self):
        self.move(80)
        #print "up (80)"

servoclass-py.txt · Last modified: 2015/04/30 08:42 by zoza