함수 정리
setEventHandler(DataType.타입, 함수이름) : 주기적으로 반복되는 이벤트 타이머 함수입니다. DataType에는 Button과 Joystick이 있습니다.
- DataType이 Button이라면 버튼 정보를 받습니다.
drone = Drone()
drone.open('com5')
drone.setEventHandler(DataType.Button,함수이름)
- DataType이 Joystick이라면 조이스틱 정보를 받습니다.
drone = Drone()
drone.open("com5")
drone.setEventHandler(DataType.Joystick,함수이름)
sendRequest(DeviceType.Drone,DataType.타입) : 데이터를 요청하는 함수입니다. DataType에는 Motion과 Altitude가 있습니다.
- Motion에는 가속도 센서(accelX, accelY, accelZ)의 상태와 자이로 센서(gyroRoll, gyroPitch, gyroYaw)의 기울기를 확인할 수 있습니다.
def eventMotion(motion):
print("eventMotion()")
print("- Accel: {0}, {1}, {2}".format(motion.accelX, motion.accelY, motion.accelZ))
print("- Gyro: {0}, {1}, {2}".format(motion.gyroRoll, motion.gyroPitch, motion.gyroYaw))
- Altitude에는 온도(temperature), 압력(pressure), 고도(altitude), 해발고도(rangeHeight)의 센서 값을 확인할 수 있습니다.
def eventAltitude(altitude):
print("eventAltitude()")
print("- Temperature: {0:.3f}".format(altitude.temperature))
print("- Pressure: {0:.3f}".format(altitude.pressure))
print("- Altitude: {0:.3f}".format(altitude.altitude))
print("- Range Height: {0:.3f}".format(altitude.rangeHeight))
sendLightDefaultColor(mode,interval,r,g,b) : LED 색상을 조절할 수 있습니다. r=빨강, g=초록, b=파랑이고, 각각 0~255 사이의 값을 넣어서 색상을 변경할 수 있습니다.
- 모드는 LightModeDrone.BodyDimming를 사용하고, 간격은 1이고, r, g, b순으로 숫자를 입력합니다.
- 드론 객체를 만들 때는 drone = Drone(True, True, True, True, True)으로 작성합니다.
drone = Drone(True, True, True, True, True)
drone.open("com5")
while True:
drone.sendLightDefaultColor(LightModeDrone.BodyDimming, 1, 255, 0, 0) #1빨강
sleep(2)
drone.sendLightDefaultColor(LightModeDrone.BodyDimming, 1, 0, 255, 0) #2초록
sleep(2)
drone.sendLightDefaultColor(LightModeDrone.BodyDimming, 1, 0, 0, 255) #3파랑
sleep(2)
drone.close()
sendClearBias() : 가속도, 기울기, 각속상태, 트림을 초기화합니다.
sendClearTrim() : 트림 속성 초기화합니다. Trim은 미세조정입니다.
- 트림 함수를 만듭니다.
def eventTrim(trim):
print("{0}, {1}, {2}, {3}".format(trim.roll, trim.pitch, trim.yaw, trim.throttle))
- setEventHandler(DataType.Trim, 함수이름)으로 setEventHandler는 여러 개 작성할 수 있습니다.
- drone.sendRequest(DeviceType.Drone, DataType.Trim)으로 Trim정보를 드론으로 보냅니다.
sendTrim(0,0,0,0) : Roll, Pitch값을 미세 조정합니다. Yaw, Throttle값은 드론 내부 센서로 컨트롤되므로 값을 변경해도 작동되지 않습니다. Trim값은 -200에서 +200 사이의 값으로 설정할 수 있습니다.
- 드론이 오른쪽으로 흐를 때 Roll값을 0~-200 사이로 조정
- 드론이 왼쪽으로 흐를 때 Roll값을 0~+200 사이로 조정
- 드론이 앞쪽으로 흐를 때 Pitch값을 0~-200 사이로 조정
- 드론이 뒤쪽으로 흐를 때 Pitch값을 0~+200 사이로 조정
sendRequest(DeviceType.Drone,DataType.Trim) : 현재 트림 값을 확인할 수 있습니다.
sendTakeOff() : 이륙 명령
sendLanding() : 착륙 명령, 안전하게 착륙하기 위해서 drone.sendLanding() 명령을 2번 작성합니다.
sendControlWhile(R, P, Y, T, 밀리초) : (0, 0, 0, 0, 1000)이라면 Roll, Pitch, Yaw, Throttle이 1초 동안 정지하라는 명령입니다. R, P, Y, T값은 -100에서 +100 사이의 값으로 설정할 수 있습니다.
- R : 오른쪽 왼쪽으로 가고 싶다면 Roll값 변경
- P : 앞뒤로 가고 싶다면 Pitch값 변경
- Y : 제자리에서 회전하고 싶다면 Yaw값 변경
- T : 위아래 움직이고 싶다면 Throttle값 변경
'파이썬' 카테고리의 다른 글
파이썬으로 드론 조종하기 (미세조정과 이동) (0) | 2022.07.29 |
---|---|
파이썬으로 드론 조종하기 (초기화) (0) | 2022.07.28 |
파이썬으로 드론 조종하기 (기본설정) (0) | 2022.07.26 |
파이썬 pyautogui 패키지로 자동 설문지 응답 프로그램 코드 작성 (0) | 2022.07.25 |
파이썬 pyautogui 패키지 사용법 (0) | 2022.07.23 |
댓글