이유진

높이 동기화

1 +# step1 : 높이조정
1 import CoDrone 2 import CoDrone
2 import keyboard 3 import keyboard
3 from CoDrone.system import Direction 4 from CoDrone.system import Direction
4 from CoDrone.system import Mode 5 from CoDrone.system import Mode
5 -from time import sleep
6 6
7 7
8 errorRange = 50 # 오차범위 8 errorRange = 50 # 오차범위
9 moveRange = 150 # 움직였다고 판단할 거리 9 moveRange = 150 # 움직였다고 판단할 거리
10 heightRange = 70 # 움직였다고 판단할 거리 height 10 heightRange = 70 # 움직였다고 판단할 거리 height
11 11
12 +
12 # 키보드로 콘솔창에 'q'를 누르면 드론이 착륙하게 만드는 코드 13 # 키보드로 콘솔창에 'q'를 누르면 드론이 착륙하게 만드는 코드
13 def stop(_master, _slave): 14 def stop(_master, _slave):
14 if keyboard.is_pressed('q'): # 키보드에서 'q'가 입력되면 while문 탈출 15 if keyboard.is_pressed('q'): # 키보드에서 'q'가 입력되면 while문 탈출
15 print('[Keyboard input occur: Quit!]') 16 print('[Keyboard input occur: Quit!]')
16 - # 착륙에 성공할 때까지 LED 효과 17 + # 착륙시작시 LED 효과
17 _master.arm_default_pattern(0, 125, 155, Mode.DOUBLE_BLINK, 10) 18 _master.arm_default_pattern(0, 125, 155, Mode.DOUBLE_BLINK, 10)
18 _slave.arm_default_pattern(0, 125, 155, Mode.DOUBLE_BLINK, 10) 19 _slave.arm_default_pattern(0, 125, 155, Mode.DOUBLE_BLINK, 10)
19 return True 20 return True
...@@ -38,11 +39,9 @@ def setHeight(_master, _mHeight, _slave): ...@@ -38,11 +39,9 @@ def setHeight(_master, _mHeight, _slave):
38 return 39 return
39 elif _sHeight < _mHeight - errorRange: 40 elif _sHeight < _mHeight - errorRange:
40 _slave.go(Direction.UP, 0, 100) 41 _slave.go(Direction.UP, 0, 100)
41 - # sleep(0.2)
42 print('[up]') 42 print('[up]')
43 elif _sHeight > _mHeight + errorRange: 43 elif _sHeight > _mHeight + errorRange:
44 _slave.go(Direction.DOWN, 0, 100) 44 _slave.go(Direction.DOWN, 0, 100)
45 - # sleep(0.2)
46 print('[down]') 45 print('[down]')
47 46
48 47
...@@ -70,6 +69,7 @@ def main(): ...@@ -70,6 +69,7 @@ def main():
70 .format(mPosition.X, mPosition.Y, mHeight, sPosition.X, sPosition.Y, sHeight)) # 좌표출력/단위(mm) 69 .format(mPosition.X, mPosition.Y, mHeight, sPosition.X, sPosition.Y, sHeight)) # 좌표출력/단위(mm)
71 70
72 if stop(master, slave): 71 if stop(master, slave):
72 + print('드론을 착륙시킵니다.')
73 break 73 break
74 74
75 # master의 전 높이 대비 +- moveRange 만큼의 차이가 있으면 slave가 움직이도록 75 # master의 전 높이 대비 +- moveRange 만큼의 차이가 있으면 slave가 움직이도록
...@@ -80,10 +80,10 @@ def main(): ...@@ -80,10 +80,10 @@ def main():
80 slave.arm_strobe() 80 slave.arm_strobe()
81 setHeight(master, mHeight, slave) 81 setHeight(master, mHeight, slave)
82 82
83 - print('Land')
84 - slave.land() # 착륙
85 master.arm_off() 83 master.arm_off()
86 slave.arm_off() 84 slave.arm_off()
85 + print('Land')
86 + slave.land() # 착륙
87 87
88 # 연결해제 -> 여기까지 성공했다면 배터리 안 빼도 다시 연결 됩니다. 88 # 연결해제 -> 여기까지 성공했다면 배터리 안 빼도 다시 연결 됩니다.
89 slave.disconnect() 89 slave.disconnect()
......