ME 405 Romi
Loading...
Searching...
No Matches
encoder.py
Go to the documentation of this file.
1
from
time
import
ticks_us, ticks_diff
# Use to get dt value in update()
2
from
pyb
import
Pin, Timer
3
6
class
Encoder
:
7
8
12
def
__init__
(self, tim, chA_pin, chB_pin):
13
#Initializes an Encoder object
14
self.
position
= 0
# Total accumulated position of the encoder
15
self.
prev_count
= 0
# Counter value from the most recent update
16
self.
delta
= 0
# Change in count between last two updates
17
self.
dt
= 0
# Amount of time between last two updates
18
self.
last_time
= 0
19
self.
current_time
= 0
20
self.
tim
= tim
21
self.
offset
= 0
22
self.
tim
.init(prescaler = 0, period = 65535)
23
self.
timCh_A
= tim.channel(1, pin=chA_pin, mode=Timer.ENC_A)
24
self.
timCh_B
= tim.channel(2, pin=chB_pin, mode=Timer.ENC_B)
25
26
30
def
update
(self):
31
self.
delta
= self.
tim
.counter() - self.
prev_count
32
33
self.
current_time
=ticks_us()
34
self.
dt
= ticks_diff(self.
current_time
, self.
last_time
)
35
self.
last_time
= ticks_us()
36
37
if
self.
delta
> 65536 / 2:
38
self.
delta
-= 65536
39
elif
self.
delta
< -65536 / 2:
40
self.
delta
+= 65536
41
42
self.
prev_count
= self.
tim
.counter()
43
self.
position
+= self.
delta
44
45
46
49
def
get_position
(self):
50
return
(self.
position
* 1/1437.1 * 2 * 3.14159 * 35) + self.
offset
51
52
55
def
get_velocity
(self):
56
return
(self.
delta
/ self.
dt
) * 1/1437.1 *2 * 3.14159 * 35 * -1000000
57
58
61
def
zero
(self):
62
self.
position
= 0
63
self.
prev_count
= self.
tim
.counter()
64
65
68
def
get_dt
(self):
69
return
self.
dt
70
71
73
def
set_offset
(self, offset):
74
self.
offset
= offset
75
76
77
78
encoder.Encoder
The Encoder Diver Class.
Definition
encoder.py:6
encoder.Encoder.timCh_A
timCh_A
Definition
encoder.py:23
encoder.Encoder.__init__
__init__(self, tim, chA_pin, chB_pin)
Encoder Initialization.
Definition
encoder.py:12
encoder.Encoder.timCh_B
timCh_B
Definition
encoder.py:24
encoder.Encoder.get_position
get_position(self)
Encoder Position Get.
Definition
encoder.py:49
encoder.Encoder.get_velocity
get_velocity(self)
Encoder Velocity Get.
Definition
encoder.py:55
encoder.Encoder.tim
tim
Definition
encoder.py:20
encoder.Encoder.last_time
int last_time
Definition
encoder.py:18
encoder.Encoder.position
int position
Definition
encoder.py:14
encoder.Encoder.current_time
int current_time
Definition
encoder.py:19
encoder.Encoder.get_dt
get_dt(self)
Get dt.
Definition
encoder.py:68
encoder.Encoder.update
update(self)
Encoder Update.
Definition
encoder.py:30
encoder.Encoder.offset
int offset
Definition
encoder.py:21
encoder.Encoder.zero
zero(self)
Zero the Encoder.
Definition
encoder.py:61
encoder.Encoder.delta
int delta
Definition
encoder.py:16
encoder.Encoder.set_offset
set_offset(self, offset)
Set Offset.
Definition
encoder.py:73
encoder.Encoder.dt
int dt
Definition
encoder.py:17
encoder.Encoder.prev_count
int prev_count
Definition
encoder.py:15
vscode_python
encoder.py
Generated by
1.15.0