Skip to content

Commit bd71d65

Browse files
committed
Optimized adaptation mypalletizer
1 parent 6f6d81b commit bd71d65

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

pymycobot/mypalletizer.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding=utf-8
22

33
import logging
4+
import math
45

56
from .log import setup_logging
67
from .generate import MycobotCommandGenerater
@@ -156,3 +157,67 @@ def _mesg(self, genre, *args, **kwargs):
156157
else:
157158
return res
158159
return None
160+
161+
def get_radians(self):
162+
"""Get all angle return a list
163+
164+
Return:
165+
data_list (list[radian...]):
166+
"""
167+
angles = self._mesg(ProtocolCode.GET_ANGLES, has_reply=True)
168+
return [round(angle * (math.pi / 180), 3) for angle in angles]
169+
170+
def send_radians(self, radians, speed):
171+
"""Send all angles
172+
173+
Args:
174+
radians (list): example [0, 0, 0, 0, 0, 0]
175+
speed (int): 0 ~ 100
176+
"""
177+
calibration_parameters(len6=radians, speed=speed)
178+
degrees = [self._angle2int(radian * (180 / math.pi))
179+
for radian in radians]
180+
return self._mesg(ProtocolCode.SEND_ANGLES, degrees, speed)
181+
182+
def sync_send_angles(self, degrees, speed, timeout=7):
183+
t = time.time()
184+
self.send_angles(degrees, speed)
185+
while time.time() - t < timeout:
186+
f = self.is_in_position(degrees, 0)
187+
if f:
188+
break
189+
time.sleep(0.1)
190+
return self
191+
192+
def sync_send_coords(self, coords, speed, mode, timeout=7):
193+
t = time.time()
194+
self.send_coords(coords, speed, mode)
195+
while time.time() - t < timeout:
196+
if self.is_in_position(coords, 1):
197+
break
198+
time.sleep(0.1)
199+
return self
200+
201+
# Basic for raspberry pi.
202+
def gpio_init(self):
203+
"""Init GPIO module.
204+
Raspberry Pi version need this.
205+
"""
206+
import RPi.GPIO as GPIO # type: ignore
207+
208+
GPIO.setmode(GPIO.BCM)
209+
self.gpio = GPIO
210+
211+
def gpio_output(self, pin, v):
212+
"""Set GPIO output value.
213+
Args:
214+
pin: port number(int).
215+
v: Output value(int), 1 - GPIO.HEIGH, 0 - GPIO.LOW
216+
"""
217+
self.gpio.setup(pin, self.gpio.OUT)
218+
self.gpio.setup(pin, v)
219+
220+
# Other
221+
def wait(self, t):
222+
time.sleep(t)
223+
return self

0 commit comments

Comments
 (0)