Mercurial > maestro-servo
changeset 11:d5a830b67bf9
Measure servo angle from the center
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Mon, 23 Jun 2014 20:08:13 +0200 |
| parents | 6795df4c66ba |
| children | 885ca625da11 |
| files | maestro.py |
| diffstat | 1 files changed, 6 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/maestro.py Mon Jun 23 18:19:10 2014 +0200 +++ b/maestro.py Mon Jun 23 20:08:13 2014 +0200 @@ -87,25 +87,17 @@ @property def angle(self): - target = self.maestro.get_target(self.index) - if self.reverse: - position = self.min_position + target - else: - position = self.max_position - target - angle = int(position / (self.max_position - - self.min_position) * self.max_degrees) - self._angle = angle - return angle + return self._angle @angle.setter def angle(self, degrees): self._angle = degrees - position = ((self.max_position - self.min_position) * - degrees) / self.max_degrees + width = self.max_position - self.min_position + position = (width * degrees) / self.max_degrees if self.reverse: - target = self.max_position - position - else: - target = self.min_position + position + position = -position + center = self.max_position + width / 2 + target = center + position self.maestro.set_target(self.index, target) @property
