vex-motors 1.0.0b

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/vex-motors.rb +90 -0
  3. metadata +129 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: de95028af6530d4cb418f0805d93211bd8316a6f693e4a95b0b921f5ac9bf493
4
+ data.tar.gz: '09a8eb499fcafbfd7b559f2754b4d96bbb3ad564e36e88930eff580dfb4563c1'
5
+ SHA512:
6
+ metadata.gz: 35212cc37793aa8b1f13dff9274faab1c7ab5252a374d378785e242fdb9bbe31a8d605113bd4ffcc62441ec6f57f192284a0694219bb9a93cf27c9888d16e235
7
+ data.tar.gz: de41be23b7ee174289acd89a320462862977aeddcc9b074f55cba15fcd7fd75f12624d51dcdc1e45a32a6a87398c74c51669d2ed3ac5bc6c5ca8f7c8d17bf867
@@ -0,0 +1,90 @@
1
+ module Motor
2
+ class Motor
3
+ attr_reader :stall_current
4
+ attr_reader :stall_torque
5
+ attr_reader :free_speed
6
+ attr_reader :max_power
7
+ attr_reader :quantity
8
+
9
+ def initialize
10
+ @quantity = 1
11
+ end
12
+
13
+ def current(speed: nil, torque: nil)
14
+ unless speed.nil?
15
+ return @stall_current * (@free_speed - speed) / @free_speed
16
+ end
17
+
18
+ unless torque.nil?
19
+ return @stall_current * torque / @stall_torque
20
+ end
21
+ end
22
+
23
+ def speed(current: nil, torque: nil)
24
+ unless current.nil?
25
+ return @free_speed * (@stall_current - current) / @stall_current
26
+ end
27
+
28
+ unless torque.nil?
29
+ return @free_speed * (@stall_torque - torque) / @stall_torque
30
+ end
31
+ end
32
+
33
+ def torque(speed: nil, current: nil)
34
+ unless speed.nil?
35
+ return @stall_torque * (@free_speed - speed) / @free_speed
36
+ end
37
+
38
+ unless current.nil?
39
+ return @stall_torque * current / @stall_current
40
+ end
41
+ end
42
+
43
+ ##
44
+ # Sets the # of motors being used.
45
+ #
46
+ # Note: because this may be called in initialize, we rely on
47
+ # the @quantity value to default to one (and not be nil) - this
48
+ # is set in the super initialize in Motor.
49
+ #
50
+ def set_quantity(qty) #should be quantity=(), but then calling from child doesn't work?
51
+ @stall_current *= qty / @quantity
52
+ @stall_torque *= qty / @quantity
53
+ @max_power *= qty / @quantity
54
+ @quantity = qty
55
+ end
56
+ end
57
+
58
+ class CIM < Motor
59
+ def initialize(qty = 1)
60
+ super()
61
+ @stall_current = 131
62
+ @stall_torque = 2.41
63
+ @free_speed = 5330
64
+ @max_power = 337
65
+ set_quantity qty
66
+ end
67
+ end
68
+
69
+ class MiniCIM < Motor
70
+ def initialize(qty = 1)
71
+ super()
72
+ @stall_current = 89
73
+ @stall_torque = 1.41
74
+ @free_speed = 5840
75
+ @max_power = 215
76
+ set_quantity qty
77
+ end
78
+ end
79
+
80
+ class Pro775 < Motor
81
+ def initialize(qty = 1)
82
+ super()
83
+ @stall_current = 134
84
+ @stall_torque = 0.71
85
+ @free_speed = 18730
86
+ @max_power = 347
87
+ set_quantity qty
88
+ end
89
+ end
90
+ end
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vex-motors
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0b
5
+ platform: ruby
6
+ authors:
7
+ - Caleb Smith
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-05-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rubocop
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.49'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.49'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rdoc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.2'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.15'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.15'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '12.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '12.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: test-unit
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.2'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: github_changelog_generator
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.14'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.14'
97
+ description: Library containing detailed Vex motor specifications, including CIMs,
98
+ MiniCIMs, and 775 Pros
99
+ email: karagenit@outlook.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - lib/vex-motors.rb
105
+ homepage: https://github.com/karagenit/vex
106
+ licenses:
107
+ - MIT
108
+ metadata: {}
109
+ post_install_message:
110
+ rdoc_options: []
111
+ require_paths:
112
+ - lib/
113
+ required_ruby_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">"
121
+ - !ruby/object:Gem::Version
122
+ version: 1.3.1
123
+ requirements: []
124
+ rubyforge_project:
125
+ rubygems_version: 2.7.4
126
+ signing_key:
127
+ specification_version: 4
128
+ summary: "[Deprecated] Vex Pro Motor Data"
129
+ test_files: []