User Tools

Site Tools


servoclass-py

Differences

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

Link to this comparison view

Next revision
Previous revision
servoclass-py [2015/04/30 08:31]
zoza created
servoclass-py [2015/04/30 08:42] (current)
zoza
Line 1: Line 1:
-====== ​ledclass.py ====== +====== ​servoclass.py ====== 
-external functions for different LED behaviours+external functions for motors control
 <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]+    ​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] +    ​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.1430382710.txt.gz · Last modified: 2015/04/30 08:31 by zoza