pyaidrone 1.3__py3-none-any.whl → 1.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyaidrone might be problematic. Click here for more details.
- pyaidrone/aiDrone.py +4 -38
- pyaidrone/ikeyevent.py +10 -2
- pyaidrone/parse.py +0 -12
- {pyaidrone-1.3.dist-info → pyaidrone-1.5.dist-info}/METADATA +1 -1
- pyaidrone-1.5.dist-info/RECORD +10 -0
- pyaidrone-1.3.dist-info/RECORD +0 -10
- {pyaidrone-1.3.dist-info → pyaidrone-1.5.dist-info}/WHEEL +0 -0
- {pyaidrone-1.3.dist-info → pyaidrone-1.5.dist-info}/top_level.txt +0 -0
pyaidrone/aiDrone.py
CHANGED
|
@@ -22,6 +22,8 @@ class AIDrone(Parse, Packet):
|
|
|
22
22
|
self.posX = 0
|
|
23
23
|
self.posY = 0
|
|
24
24
|
self.rot = 0
|
|
25
|
+
|
|
26
|
+
|
|
25
27
|
|
|
26
28
|
def receiveHandler(self):
|
|
27
29
|
while self.isThreadRun:
|
|
@@ -32,24 +34,6 @@ class AIDrone(Parse, Packet):
|
|
|
32
34
|
self.receiveCallback(packet)
|
|
33
35
|
self.serial.write(self.makepkt.getPacket())
|
|
34
36
|
|
|
35
|
-
def requestSensorData(self):
|
|
36
|
-
self.makepkt.makePacket(8, bytes([0x10]))
|
|
37
|
-
self.serial.write(self.makepkt.getPacket())
|
|
38
|
-
|
|
39
|
-
def get_gyro(self):
|
|
40
|
-
return self.sensors["gyro"]
|
|
41
|
-
|
|
42
|
-
def get_acceleration(self):
|
|
43
|
-
return self.sensors["acceleration"]
|
|
44
|
-
|
|
45
|
-
def get_altitude(self):
|
|
46
|
-
return self.sensors["altitude"]
|
|
47
|
-
|
|
48
|
-
def get_position(self):
|
|
49
|
-
return self.sensors["position"]
|
|
50
|
-
|
|
51
|
-
def get_tof(self):
|
|
52
|
-
return self.sensors["tof"]
|
|
53
37
|
|
|
54
38
|
def Open(self, portName = "None"):
|
|
55
39
|
if eq(portName, "None"):
|
|
@@ -166,27 +150,9 @@ class AIDrone(Parse, Packet):
|
|
|
166
150
|
def emergency(self):
|
|
167
151
|
self.setOption(0x00)
|
|
168
152
|
self.serial.write(self.makepkt.getPacket())
|
|
153
|
+
|
|
169
154
|
|
|
170
|
-
|
|
171
|
-
"""
|
|
172
|
-
모터 속도를 0~100 범위에서 설정합니다.
|
|
173
|
-
|
|
174
|
-
:param motor_id: 제어할 모터의 인덱스 (0~3은 개별 모터, 4는 모든 모터)
|
|
175
|
-
:param speed: 모터 속도 (0 ~ 100)
|
|
176
|
-
"""
|
|
177
|
-
speed = max(0, min(speed, 100)) # 속도를 0~100 범위로 제한
|
|
178
|
-
scaled_speed = speed * 10 # 내부적으로 0~1000 범위로 변환
|
|
179
|
-
data = scaled_speed.to_bytes(2, byteorder="little", signed=False)
|
|
180
|
-
|
|
181
|
-
# 모든 모터를 동시에 제어
|
|
182
|
-
if motor_id == 4:
|
|
183
|
-
self.makepkt.makePacket(12, data) # 모든 모터의 속도를 설정 (THR 제어)
|
|
184
|
-
else:
|
|
185
|
-
# 개별 모터 제어
|
|
186
|
-
self.makepkt.makePacket(6 + (motor_id * 2), data)
|
|
187
|
-
|
|
188
|
-
# 패킷을 시리얼 포트를 통해 전송
|
|
189
|
-
self.serial.write(self.makepkt.getPacket())
|
|
155
|
+
|
|
190
156
|
|
|
191
157
|
|
|
192
158
|
|
pyaidrone/ikeyevent.py
CHANGED
|
@@ -22,8 +22,10 @@ class IKeyEvent:
|
|
|
22
22
|
self.keyLTurn = True
|
|
23
23
|
if key == keyboard.KeyCode(char="d"):
|
|
24
24
|
self.keyRTurn = True
|
|
25
|
+
if key == keyboard.KeyCode(char="k"):
|
|
26
|
+
self.keyRTurn = True
|
|
25
27
|
if key == keyboard.Key.esc:
|
|
26
|
-
|
|
28
|
+
self.keyEsc = True
|
|
27
29
|
|
|
28
30
|
def on_release(self, key):
|
|
29
31
|
if key == keyboard.Key.enter:
|
|
@@ -46,8 +48,10 @@ class IKeyEvent:
|
|
|
46
48
|
self.keyLTurn = False
|
|
47
49
|
if key == keyboard.KeyCode(char="d"):
|
|
48
50
|
self.keyRTurn = False
|
|
51
|
+
if key == keyboard.KeyCode(char="v"):
|
|
52
|
+
self.keyRTurn = False
|
|
49
53
|
if key == keyboard.Key.esc:
|
|
50
|
-
|
|
54
|
+
self.keyEsc = False
|
|
51
55
|
|
|
52
56
|
def __init__(self):
|
|
53
57
|
self.keyEnter = False
|
|
@@ -60,6 +64,7 @@ class IKeyEvent:
|
|
|
60
64
|
self.keyGoDown = False
|
|
61
65
|
self.keyLTurn= False
|
|
62
66
|
self.keyRTurn = False
|
|
67
|
+
self.keyVideo = False
|
|
63
68
|
self.keyEsc = False
|
|
64
69
|
|
|
65
70
|
listener = keyboard.Listener(on_press=self.on_press, on_release=self.on_release)
|
|
@@ -95,5 +100,8 @@ class IKeyEvent:
|
|
|
95
100
|
def isKeyDPressed(self):
|
|
96
101
|
return self.keyRTurn
|
|
97
102
|
|
|
103
|
+
def isKeyVPressed(self):
|
|
104
|
+
return self.keyVideo
|
|
105
|
+
|
|
98
106
|
def isKeyEscPressed(self):
|
|
99
107
|
return self.keyEsc
|
pyaidrone/parse.py
CHANGED
|
@@ -8,7 +8,6 @@ class Parse:
|
|
|
8
8
|
self.type = 0
|
|
9
9
|
self.packetLen = 20
|
|
10
10
|
self.headMatchCnt = 0
|
|
11
|
-
self.sensors = {"gyro":(0,0), "acceleration":(0,0), "altitude": (0,0), "position": (0, 0), "tof": 0}
|
|
12
11
|
if self.model == AIDRONE:
|
|
13
12
|
self.head = (0x26, 0xA8, 0x14, 0xA0)
|
|
14
13
|
|
|
@@ -44,15 +43,4 @@ class Parse:
|
|
|
44
43
|
self.parseSensorData(slef.packet)
|
|
45
44
|
return self.packet
|
|
46
45
|
return "None"
|
|
47
|
-
|
|
48
|
-
def parseSensorData(self, packet):
|
|
49
|
-
if packet[3] == 0xA2:
|
|
50
|
-
self.sensors["gyro"] = (int.from_bytes(packet[9:11], "little", signed=True),
|
|
51
|
-
int.from_bytes(packet[11:13], "little", signed=True))
|
|
52
|
-
self.sensors["acceleration"] = (int.from_bytes(packet[13:15], "little", signed=True),
|
|
53
|
-
int.from_bytes(packet[15:17], "little", signed=True))
|
|
54
|
-
self.sensors["altitude"] = int.from_bytes(packet[17:19], "little", signed=True)
|
|
55
|
-
self.sensors["position"] = (int.from_bytes(packet[19:21], "little", signed=True),
|
|
56
|
-
int.from_bytes(packet[21:23], "little", signed=True))
|
|
57
|
-
self.sensors["tof"] = int.from_bytes(packet[23:25], "little", signed=True)
|
|
58
46
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
pyaidrone/__init__.py,sha256=LTT-ZpL6vrKdC5t0O71pJnk3zMhDf1eXkNmoLoIRupo,19
|
|
2
|
+
pyaidrone/aiDrone.py,sha256=ImV07TKaoOHKFAlxor4SHxs75MJMlAxqOumuYlosWl4,4778
|
|
3
|
+
pyaidrone/deflib.py,sha256=ZeA_qfnhuXEIhJHUMNSKkCkBEaWuoIS5X7ZqjTo9Sx4,735
|
|
4
|
+
pyaidrone/ikeyevent.py,sha256=5lqZFA_Wg4ntS8JF8bwHEJwPEoq1mEtR8Cwb8kJSivo,3124
|
|
5
|
+
pyaidrone/packet.py,sha256=h02k9dMUhP4oyEBaDuJ9L9HdutfZE_znreBmPOfTLog,813
|
|
6
|
+
pyaidrone/parse.py,sha256=oSG4n3tTJmh7fyNyIOLf9IgQTcpxB2CH8Sfw9RcuHZM,1430
|
|
7
|
+
pyaidrone-1.5.dist-info/METADATA,sha256=r47UK1HGO_eOG9mQLLzBZpfGYAHKH_-62mB87oDbMxk,593
|
|
8
|
+
pyaidrone-1.5.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
9
|
+
pyaidrone-1.5.dist-info/top_level.txt,sha256=YLnJwG3F2TdfFcg6r7jcx02fekcXHF_GC0nv12hJGT8,10
|
|
10
|
+
pyaidrone-1.5.dist-info/RECORD,,
|
pyaidrone-1.3.dist-info/RECORD
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
pyaidrone/__init__.py,sha256=LTT-ZpL6vrKdC5t0O71pJnk3zMhDf1eXkNmoLoIRupo,19
|
|
2
|
-
pyaidrone/aiDrone.py,sha256=bOCzuwNWxlJWVIzCe8lx58hW40FRuOa7iFwN4eQXTMY,6086
|
|
3
|
-
pyaidrone/deflib.py,sha256=ZeA_qfnhuXEIhJHUMNSKkCkBEaWuoIS5X7ZqjTo9Sx4,735
|
|
4
|
-
pyaidrone/ikeyevent.py,sha256=ZpRiFu71GhW2XQgyiXzCvb2FYoLU8bH4fVeaKoGEMqM,2866
|
|
5
|
-
pyaidrone/packet.py,sha256=h02k9dMUhP4oyEBaDuJ9L9HdutfZE_znreBmPOfTLog,813
|
|
6
|
-
pyaidrone/parse.py,sha256=oVZJKSYZzjBo3qtd6z__nLCYBiAL6VwnHbyNRUIiEfE,2355
|
|
7
|
-
pyaidrone-1.3.dist-info/METADATA,sha256=jIsz-pA3bjav6eQplhmR4N365jOWoZxXSRMURwpKmhk,593
|
|
8
|
-
pyaidrone-1.3.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
9
|
-
pyaidrone-1.3.dist-info/top_level.txt,sha256=YLnJwG3F2TdfFcg6r7jcx02fekcXHF_GC0nv12hJGT8,10
|
|
10
|
-
pyaidrone-1.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|