User Tools

Site Tools


servoclass-py

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
servoclass-py [2015/04/30 08:39]
zoza
servoclass-py [2015/04/30 08:42]
zoza
Line 1: Line 1:
-====== ​ledclass.py ======+====== ​servoclass.py ======
 external functions for different LED behaviours external functions for different LED behaviours
 <code python> <code python>
 +#​!/​usr/​bin/​env python
 +
 +"""​servoclass.py:​ connects to usbport and defines the movement of servo motors"""​
 +
 import serial, glob import serial, glob
  
 +
 +### assign arduino'​s serial port
 try: try:
-    ​portled ​= glob.glob("/​dev/​arduino-leds")[0] # as assigned in udev rules /​etc/​udev/​rules.d ; http://​hackaday.com/​2009/​09/​18/​how-to-write-udev-rules/​+    ​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: except IndexError:
-    ​portled ​= glob.glob("/​dev/​ttyACM0")[0] # fall back to a default ​first USB port address +    ​portmotor ​= glob.glob("/​dev/​ttyUSB0")[0] # fall back to a default USB address 
-print "portled", portled +portled = glob.glob("/dev/tty*")[0
-serled ​serial.Serial(portled,​ 19200, timeout=1) +print "portmotor:", ​portmotor 
- +### set up serial baud rate 
-def clearAll():​ +sermotor ​serial.Serial(portmotor9600timeout=1)
-    for j in range(4): +
-        message = ("%d,0,0,0")%(j) +
-        serled.write(message+'​\n'​) +
- +
-def fadeIn(led, color): +
-    for i in range(255)[::15]: +
-        if color == "red": +
-            r = i +
-            g = 0 +
-            b = 0 +
-        elif color == "​green":​ +
-            r = 0 +
-            g = i +
-            b = 0 +
-        message = (str(led)+",%d,​%d,​%d"​)%(r,​g,​b) +
-        ​serled.write(message+"​\n"​) +
- +
-def fadeInRed(led):​ +
-    for i in range(255)[::​15]:​ +
-        message ​(str(led)+",​%d,​0,​0"​)%(i) +
-        serled.write(message+"​\n"​) +
- +
-def fadeInGreen(led):​ +
-    for i in range(255)[::​15]:​ +
-        message = (str(led)+"​,0,0,​%d"​)%(i) +
-        serled.write(message+"​\n"​) +
- +
-def fadeInYellow(led):​ +
-    for i in range(255)[::​15]:​ +
-        message ​(str(led)+",​%d,​0,​%d"​)%(i,​i) +
-        serled.write(message+"​\n"​)+
  
-def fadeInPurple(led)+class Servo
-    ​for i in range(255)[::15]+    ​def __init__(self, servoID): 
-        ​message ​(str(led)+",​%d,​%d,​0"​)%(i,​int(i*0.2)) +        ​self.servoID ​servoID 
-        ​serled.write(message+"​\n"​)+        ​self.stop() # when initiated, stop!
  
-def fadeInTurq(led): +    ​def move(self, speed): 
-    for i in range(255)[::​15]:​ +        ​self.speed = speed 
-        ​message ​= (str(led)+",​0,​%d,​%d"​)%(int(i*0.2),i+        ​if 0 <self.speed <= 180: 
-        ​serled.write(message+"​\n"​)+            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)"
  
-# fading OUT functions by colour:+    def down_slow(self): 
 +        self.move(100) 
 +        #print "​down_slow (100)"
  
-def fadeOutRed(led)+    ​def down_medium(self): 
-    for i in range(255,​0,​-1)[::​25]+        ​self.move(110
-        ​message = (str(led)+",​%d,​0,​0"​)%(i+        ​#​print ​"down_medium ​(110)"
-        ​serled.write(message+"\n") +
-        serled.write(str(led)+",​0,​0,​0\n"​)+
  
-def fadeOutGreen(led): +    ​def down_fast(self): 
-    for i in range(255,​0,​-1)[::​25]:​ +        ​self.move(120
-        message = (str(led)+",​0,​0,​%d"​)%(i) +        ​#​print ​"down_fast ​(120)"
-        ​serled.write(message+"​\n"​+
-        ​serled.write(str(led)+",​0,​0,​0\n"​) +
-def fadeOutYellow(led)+
-    for i in range(255,​0,​-1)[::​25]:​ +
-        message = (str(led)+",​%d,​0,​%d"​)%(i,​i) +
-        serled.write(message+"​\n"​) +
-        serled.write(str(led)+",​0,​0,​0\n"​)+
  
-def fadeOutPurple(led)+    ​def up(self): 
-    for i in range(255,​0,​-1)[::​25]+        ​self.move(80
-        ​message = (str(led)+",​%d,​%d,​0"​)%(i,​int(i*0.2)+        ​#​print ​"up (80)"
-        ​serled.write(message+"\n") +
-        serled.write(str(led)+",​0,​0,​0\n"​)+
  
-def fadeOutTurq(led):​ 
-    for i in range(255,​0,​-1)[::​25]:​ 
-        message = (str(led)+",​0,​%d,​%d"​)%(int(i*0.2),​i) 
-        serled.write(message+"​\n"​) 
-        serled.write(str(led)+",​0,​0,​0\n"​) 
  
 </​code>​ </​code>​
  
servoclass-py.txt · Last modified: 2015/04/30 08:42 by zoza