1
- # Simple demo for controlling the plen:bit robot
2
- # NOTE: MUST CUT MIDDLE TRACE ON PCA9685 ADDRESS JUMPER!
3
-
4
- import time
5
1
import busio
6
2
import board
7
3
from digitalio import DigitalInOut , Direction
8
4
from adafruit_pca9685 import PCA9685
9
5
from adafruit_motor import servo
10
6
11
- i2c = busio .I2C (board .SCL , board .SDA )
12
- pca = PCA9685 (i2c , address = 0x68 )
13
- pca .frequency = 50
14
7
led = DigitalInOut (board .P16 )
15
8
led .direction = Direction .OUTPUT
16
- led .value = True
17
9
18
- while True :
19
- pass
10
+ i2c = busio .I2C (board .SCL , board .SDA )
11
+ pca = PCA9685 (i2c , address = 0x68 )
12
+ pca .frequency = 50
20
13
servoSetInit = (1000 , 630 , 500 , 600 , 240 , 600 , 1000 , 720 )
21
14
servoAngle = [1000 , 630 , 500 , 600 , 240 , 600 , 1000 , 720 ]
22
15
motionSpeed = 15
23
16
servos = []
24
- for s in range (8 ):
25
- servos .append (servo .Servo (pca .channels [s ], min_pulse = 800 , max_pulse = 2200 ))
17
+ for c in range (8 ):
18
+ servos .append (servo .Servo (pca .channels [c ], min_pulse = 800 , max_pulse = 2200 ))
26
19
27
20
def servoInitialSet ():
28
21
print ("Initialize servos" )
29
- for n in range (8 ):
30
- servos [n ].angle = servoSetInit [n ] / 10
22
+ for i in range (8 ):
23
+ servos [i ].angle = servoSetInit [i ] / 10
31
24
32
- def servoFree (serv = None ):
33
- if serv :
34
- print ("Release servo #" , serv )
35
- servos [serv ].angle = None
25
+ def servoFree (n = None ):
26
+ if n :
27
+ print ("Release servo #" , n )
28
+ servos [n ].angle = None
36
29
else :
37
30
print ("Release all servos" )
38
- for ser in servos :
39
- ser .angle = None
31
+ for s in servos :
32
+ s .angle = None
40
33
41
34
def servoWrite (num , degrees ):
42
35
degrees = min (max (degrees , 0 ), 180 )
@@ -61,12 +54,15 @@ def setAngle(angle, msec):
61
54
print (servoAngle )
62
55
63
56
servoInitialSet ()
64
- time .sleep (1 )
57
+
58
+ led .value = False
65
59
setAngle ([0 , 0 , - 200 , 0 , 0 , 0 , 0 , 0 ], 500 )
66
60
setAngle ([0 , 0 , - 1800 , 0 , 0 , 0 , 1800 , 0 ], 500 )
67
61
setAngle ([900 , 0 , - 1800 , 0 , - 900 , 0 , 1800 , 0 ], 500 )
68
62
setAngle ([900 , 0 , - 200 , 0 , - 900 , 0 , 0 , 0 ], 500 )
69
63
setAngle ([900 , 0 , - 1800 , 0 , - 900 , 0 , 1800 , 0 ], 500 )
70
64
setAngle ([900 , 0 , - 200 , 0 , - 900 , 0 , 0 , 0 ], 500 )
71
65
setAngle ([0 , 0 , - 200 , 0 , 0 , 0 , 0 , 0 ], 500 )
66
+ led .value = True
67
+
72
68
servoFree ()
0 commit comments