diff options
author | Raspberry Pi <pi@umn.edu> | 2019-10-15 18:46:52 -0500 |
---|---|---|
committer | Raspberry Pi <pi@umn.edu> | 2019-10-15 18:46:52 -0500 |
commit | 632729e3396ce834d1201af342cccd7a0dd55c92 (patch) | |
tree | 5ee3db98578af0b91fb67f76c14cfbb982be20f3 | |
parent | Updated encoder for proper zero setting and offset behavior. Tested system li... (diff) | |
download | ee4511w-632729e3396ce834d1201af342cccd7a0dd55c92.tar ee4511w-632729e3396ce834d1201af342cccd7a0dd55c92.tar.gz ee4511w-632729e3396ce834d1201af342cccd7a0dd55c92.tar.bz2 ee4511w-632729e3396ce834d1201af342cccd7a0dd55c92.tar.lz ee4511w-632729e3396ce834d1201af342cccd7a0dd55c92.tar.xz ee4511w-632729e3396ce834d1201af342cccd7a0dd55c92.tar.zst ee4511w-632729e3396ce834d1201af342cccd7a0dd55c92.zip |
Measured linear movement from physical system. Slightly modified test_Motor to test on physical system.
-rw-r--r-- | System_Python/system.py | 10 | ||||
-rw-r--r-- | System_Python/test_Motor.py | 10 |
2 files changed, 9 insertions, 11 deletions
diff --git a/System_Python/system.py b/System_Python/system.py index 1e532fa..ff38628 100644 --- a/System_Python/system.py +++ b/System_Python/system.py @@ -44,8 +44,7 @@ class System: angular_position = self.encoder_angular.read_position('Degrees')
if angular_position > 180:
angular_position = angular_position - 360
- #linear_position = self.encoder_linear.read_position()
- linear_position = 0
+ linear_position = self.encoder_linear.read_position()
return (angular_position, linear_position)
# END measure()
@@ -70,7 +69,7 @@ class System: # This class is to help with using an absolute encoder for linear position sensing as assembled in the physical system.
# The function definitions here are the same as with the regular encoder (pseudo-interface).
class Linear_Encoder:
- DIAMETER = 4.0 # MEASURE THIS
+ PROPORTION = 14.5
def __init__(self, clk_pin, cs_pin, data_pin):
self.encoder = Encoder(clk_pin, cs_pin, data_pin)
@@ -95,8 +94,7 @@ class Linear_Encoder: # We are moving to the left (negative) and have completed a new rotation
self.rotations = self.rotations - 1
# Save the last position for the next calculation
- self.last_position = position
-
+ self.last_position = position
# compute the position based on the system parameters
# linear position = (2pi*r)(n) + (2pi*r)(position/1024) = (2pi*r)(n + position/1024) = (pi*d)(n + position/1024)
- return (math.pi*DIAMETER)*(self.rotations + position/1024)
+ return (PROPORTION)*(self.rotations + position/1024)
diff --git a/System_Python/test_Motor.py b/System_Python/test_Motor.py index 99db520..80cff1e 100644 --- a/System_Python/test_Motor.py +++ b/System_Python/test_Motor.py @@ -11,13 +11,13 @@ m = Motor(speed_pin, forward_pin, reverse_pin) dir = 'ascending'
speed = 0.0
while 1:
- m.move(speed)
- if speed >= 100.0:
+ if speed >= 15.0:
dir = 'descending'
- elif speed <= -100.0:
+ elif speed <= -15.0:
dir = 'ascending'
if dir == 'ascending':
- speed = speed + 0.5
+ speed = speed + 2.0
else:
- speed = speed - 0.5
+ speed = speed - 2.0
+ m.move(speed)
time.sleep(0.1)
\ No newline at end of file |