diff options
author | Matt Strapp <matt@mattstrapp.net> | 2022-02-24 13:47:38 -0600 |
---|---|---|
committer | Matt Strapp <matt@mattstrapp.net> | 2022-02-24 13:47:38 -0600 |
commit | 0c09cb1785d1130c17a3c3d9aefb2644a758b98b (patch) | |
tree | 74406a7c8b425f816fe0bedfd0f9d5fda1eb5232 /System/pendulum | |
parent | submodule, again (diff) | |
download | ee4511w-0c09cb1785d1130c17a3c3d9aefb2644a758b98b.tar ee4511w-0c09cb1785d1130c17a3c3d9aefb2644a758b98b.tar.gz ee4511w-0c09cb1785d1130c17a3c3d9aefb2644a758b98b.tar.bz2 ee4511w-0c09cb1785d1130c17a3c3d9aefb2644a758b98b.tar.lz ee4511w-0c09cb1785d1130c17a3c3d9aefb2644a758b98b.tar.xz ee4511w-0c09cb1785d1130c17a3c3d9aefb2644a758b98b.tar.zst ee4511w-0c09cb1785d1130c17a3c3d9aefb2644a758b98b.zip |
Refactor speed to torque
Signed-off-by: Matt Strapp <matt@mattstrapp.net>
Diffstat (limited to 'System/pendulum')
-rw-r--r-- | System/pendulum/system.py | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/System/pendulum/system.py b/System/pendulum/system.py index 21439aa..4a49492 100644 --- a/System/pendulum/system.py +++ b/System/pendulum/system.py @@ -19,7 +19,7 @@ from threading import Thread, Lock # IO pin definitions
### Motor pins
-motor_speed_pin = 17
+motor_torque_pin = 17
motor_forward_pin = 27
motor_reverse_pin = 22
### Encoder pins (shared by both encoders)
@@ -54,7 +54,7 @@ class System: self.max_x = system_max_x
self.min_x = system_min_x
# Initialize the motor.
- self.motor = Motor(motor_speed_pin, motor_forward_pin, motor_reverse_pin)
+ self.motor = Motor(motor_torque_pin, motor_forward_pin, motor_reverse_pin)
# Initialize the angular encoder.
self.encoder_angular = Encoder(encoder_clock_pin, encoder_angular_cs_pin, encoder_data_pin)
self.encoder_angular.set_zero(offset = 512) # set offset so that 0 is upright vertical
@@ -88,13 +88,13 @@ class System: self.sw_limit_routine = sw_limit_routine
# Create and setup results file (to be sent back to the server and displayed/downloaded to the user)
- # Results file is a CSV with the following entries: angle, position, speed
+ # Results file is a CSV with the following entries: angle, position, torque
self.result_filename = f"{sys.argv[0].split('.')[0]}.csv"
print("self.result_filename")
print(self.result_filename)
# Open the file for write mode. The file will get created, assuming it does not already exist.
result_file = open(self.result_filename, "x")
- result_file.write(f"timestamp,angle({angular_units}),position(inches),speed(percentage)\n")
+ result_file.write(f"timestamp,angle({angular_units}),position(inches),torque(percentage)\n")
result_file.close()
# Setup a thread to constantly be measuring encoder positions
@@ -226,34 +226,34 @@ class System: sleep(0.01)
# Adjust the pendulum's linear position using the motor.
- ### speed: Acceptable values range from -100 to 100 (as a percentage), with 100/-100 being the maximum adjustment speed.
+ ### torque: Acceptable values range from -100 to 100 (as a percentage), with 100/-100 being the maximum adjustment torque.
##### Negative values will move the pendulum to the left.
##### Positive values will move the pendulum to the right.
- def adjust(self, speed):
+ def adjust(self, torque):
if self.interrupted == False:
- if speed != 0:
- # cap the speed inputs
- if speed > 100.:
- speed = 100.
- if speed < -100.:
- speed = -100.
- # change the motor speed
- # TODO: Make sure the motor is oriented so that positive speed the correct direction (same for negative). Change the values otherwise.
+ if torque != 0:
+ # cap the torque inputs
+ if torque > 100.:
+ torque = 100.
+ if torque < -100.:
+ torque = -100.
+ # change the motor torque
+ # TODO: Make sure the motor is oriented so that positive torque the correct direction (same for negative). Change the values otherwise.
self.motor.coast()
- self.motor.move(speed)
+ self.motor.move(torque)
else:
self.motor.coast()
# END adjust()
# Append data to the results file
- def add_results(self, angle, position, speed):
+ def add_results(self, angle, position, torque):
# open the results file
result_file = open(self.result_filename, "a")
# Write the results
result_file.write("%s," % datetime.now().strftime("%H:%M:%S.%f")) # Write current time
result_file.write("%f," % angle) # Write angle
result_file.write("%f," % position) # Write position
- result_file.write("%f\n" % speed) # Write speed (end of line)
+ result_file.write("%f\n" % torque) # Write torque (end of line)
# Close the results file
result_file.close()
# END add_results
@@ -264,7 +264,7 @@ class System: # Write the log
result_file.write("%s\n" % message)
# re-write the csv headers for next logging
- result_file.write(f"timestamp,angle({self.angular_units}),position(inches),speed(percentage)\n")
+ result_file.write(f"timestamp,angle({self.angular_units}),position(inches),torque(percentage)\n")
# Close the results file
result_file.close()
|