drone class

Drone 클래슀 생성

def __init__(self, flagCheckBackground = True, flagShowErrorMessage = False, flagShowLogMessage = False, flagShowTransferData = False, flagShowReceiveData = False):

Drone 클래슀의 public ν•¨μˆ˜ ꡬ성

Drone 클래슀 데이터 μˆ˜μ‹  μ²˜λ¦¬λΆ€

ν•¨μˆ˜ λͺ©λ‘

일반

μ‘°μ’…

μ„€μ •

λͺ¨ν„°

LED

μ‘°μ’…κΈ° LCD λ””μŠ€ν”Œλ ˆμ΄

μ‘°μ’…κΈ° 버저

μ‘°μ’…κΈ° 진동

ν•¨μˆ˜ μ„€λͺ…

sendPing

  • ν•‘ 전솑

  • λ‹€λ₯Έ μž₯μΉ˜μ™€μ˜ μ—°κ²° μƒνƒœλ₯Ό 확인할 λ•Œ μ‚¬μš©

def sendPing(self, deviceType):

sendRequest

  • 데이터 μš”μ²­

  • μ§€μ •ν•œ μž₯μΉ˜μ— 데이터λ₯Ό μš”μ²­ν•  λ•Œ μ‚¬μš©

def sendRequest(self, deviceType, dataType):

sendPairing

  • νŽ˜μ–΄λ§ μ„€μ •

  • μ§€μ •ν•œ μž₯치의 νŽ˜μ–΄λ§ 섀정을 λ³€κ²½ν•  λ•Œ μ‚¬μš©

def sendPairing(self, deviceType, addressLocal, addressRemote, channel):

sendTakeOff

  • 이λ₯™

  • λ§Œμ•½ 이λ₯™ μ€€λΉ„ μƒνƒœκ°€ μ•„λ‹ˆλΌλ©΄ μžλ™μœΌλ‘œ 이λ₯™ μ€€λΉ„ μƒνƒœλ₯Ό 거치게 됨

def sendTakeOff(self):

sendLanding

  • μ°©λ₯™

def sendLanding(self):

sendStop

  • λ“œλ‘  λͺ¨λ“œμ— 관계없이 κ°•μ œλ‘œ μ •

def sendStop(self):

sendControl

  • λΉ„ν–‰ μ‘°μ’…

def sendControl(self, roll, pitch, yaw, throttle):

sendControlWhile

  • λΉ„ν–‰ μ‘°μ’…

  • λΉ„ν–‰ 및 주행에 λͺ¨λ‘ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. timeMs에 μ§€μ •ν•œ msλ™μ•ˆ μ—°μ†μœΌλ‘œ μ‘°μ’… λͺ…령을 μ „μ†‘ν•©λ‹ˆλ‹€.

def sendControlWhile(self, roll, pitch, yaw, throttle, timeMs):

sendControlPosition16

  • λ“œλ‘  이동 λͺ…λ Ή

  • λͺ¨λ“  λ³€μˆ˜μ— 2byte μ •μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” λŒ€μ‹  positionκ³Ό velocity의 값에 x10을 적용.

def sendControlPosition16(self, positionX, positionY, positionZ, velocity, heading, rotationalVelocity):

sendControlPosition

  • λ“œλ‘  이동 λͺ…λ Ή

  • positionκ³Ό velocityλŠ” μ‹€μˆ˜ κ°’, headingκ³Ό rotationalVelocityμ—λŠ” μ •μˆ˜ κ°’ μ‚¬μš©

def sendControlPosition(self, positionX, positionY, positionZ, velocity, heading, rotationalVelocity):

sendCommand

  • λͺ…λ Ή 전솑

  • λ“œλ‘ μ— λͺ…령을 전달할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

  • optionμ—λŠ” 각 ν˜•μ‹μ˜ value κ°’ λ˜λŠ” 숫자 값을 λ„£μœΌμ…”μ•Ό ν•©λ‹ˆλ‹€.

def sendCommand(self, commandType, option = 0):

sendCommandLightEvent

  • λͺ…λ Ή + LED 이벀트

  • λ“œλ‘ μ— λͺ…령을 전달할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

  • optionμ—λŠ” 각 ν˜•μ‹μ˜ value κ°’ λ˜λŠ” 숫자 값을 λ„£μœΌμ…”μ•Ό ν•©λ‹ˆλ‹€.

def sendCommandLightEvent(self, commandType, option, lightEvent, interval, repeat):

sendCommandLightEventColor

  • λͺ…λ Ή + LED 이벀트(RGB)

  • λ“œλ‘ μ— λͺ…령을 전달할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

  • optionμ—λŠ” 각 ν˜•μ‹μ˜ value κ°’ λ˜λŠ” 숫자 값을 λ„£μœΌμ…”μ•Ό ν•©λ‹ˆλ‹€.

def sendCommandLightEventColor(self, commandType, option, lightEvent, interval, repeat, r, g, b):

sendCommandLightEventColors

  • λͺ…λ Ή + LED 이벀트(Palette)

  • λ“œλ‘ μ— λͺ…령을 전달할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

  • optionμ—λŠ” 각 ν˜•μ‹μ˜ value κ°’ λ˜λŠ” 숫자 값을 λ„£μœΌμ…”μ•Ό ν•©λ‹ˆλ‹€.

def sendCommandLightEventColors(self, commandType, option, lightEvent, interval, repeat, colors):

sendModeControlFlight

  • λΉ„ν–‰ μ œμ–΄ λͺ¨λ“œ μ„€μ •

  • λ“œλ‘  λΉ„ν–‰ μ œμ–΄ λͺ¨λ“œλ₯Ό λ³€κ²½ν•©λ‹ˆλ‹€.

def sendModeControlFlight(self, modeControlFlight):

sendHeadless

  • Headless μ„€μ •

def sendHeadless(self, headless):

sendTrimIncDec

  • Trim μ„€μ •

def sendTrimIncDec(self, trimIncDec):

sendTrim

  • λΉ„ν–‰ Trim μ„€μ •

def sendTrim(self, roll, pitch, yaw, throttle):

sendWeight

  • 무게

def sendWeight(self, weight):

sendLostConnection

  • 톡신 연결이 끊긴 ν›„ λ°˜μ‘ μ‹œκ°„ μ„€μ •

  • λ§ˆμ§€λ§‰μœΌλ‘œ λΉ„ν–‰ 이벀트 λ˜λŠ” μ‘°μ’… λͺ…령을 λ³΄λƒˆλ˜ μž₯μΉ˜μ™€μ˜ 연결이 λŠμ–΄μ§„ 후에 μ§€μ •ν•œ μ‹œκ°„μ΄ κ²½κ³Όν•˜λ©΄ ν•΄λ‹Ή λͺ…령을 μ‹€ν–‰. μ‹œκ°„μ„ 0으둜 μ„€μ •ν•œ 경우 ν•΄λ‹Ή λͺ…령은 μ‹€ν–‰ν•˜μ§€ μ•ŠμŒ. μ‹œκ°„ λ‹¨μœ„λŠ” ms

def sendLostConnection(self, timeNeutral, timeLanding, timeStop):

sendFlightEvent

  • λΉ„ν–‰ 이벀트 μ‹€ν–‰

def sendFlightEvent(self, flightEvent):

sendClearBias

  • Accel, Gyro Bias μ΄ˆκΈ°ν™”

def sendClearBias(self):

sendClearTrim

  • λΉ„ν–‰, μ£Όν–‰ Trim μ΄ˆκΈ°ν™”

def sendClearTrim(self):

sendSetDefault

  • μž₯치 μ„€μ • μ΄ˆκΈ°ν™”

  • μ§€μ •ν•œ μž₯치의 섀정을 μ΄ˆκΈ°ν™” 함

def sendSetDefault(self, deviceType):

sendMotor

  • 4개의 λͺ¨ν„°λ₯Ό 미리 μ§€μ •λœ λ°©ν–₯으둜 νšŒμ „

def sendMotor(self, motor0, motor1, motor2, motor3):

sendMotorSingle

  • 1개의 λͺ¨ν„°λ₯Ό νšŒμ „ λ°©ν–₯을 μ§€μ •ν•˜μ—¬ λ™μž‘

  • target에 λ“€μ–΄κ°€λŠ” 값은 0~3μž…λ‹ˆλ‹€. λͺ¨ν„°μ˜ μˆœμ„œλŠ” μ™Όμͺ½ μ•ž λͺ¨ν„°λΆ€ν„° μ‹œκ³„λ°©ν–₯μž…λ‹ˆλ‹€.

def sendMotorSingle(self, target, rotation, value):

sendLightManual

  • LED μˆ˜λ™ μ œμ–΄

  • flagsμ—λŠ” LightFlagsDrone, LightFlagsController의 value 값을 μ‚¬μš©ν•˜κ±°λ‚˜ 직접 ν”Œλž˜κ·Έμ— ν•΄λ‹Ήν•˜λŠ” λΉ„νŠΈλ₯Ό μ„ νƒν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

  • brightnessλŠ” 값은 0일 λ•Œ 꺼지며 값이 컀질수둝 λ°μ•„μ§‘λ‹ˆλ‹€.

def sendLightManual(self, deviceType, flags, brightness):

sendLightModeColor

  • LED λͺ¨λ“œ μ„€μ •(RGB)

  • lightMode λ³€μˆ˜μ—λŠ” LightModeDrone, LightModeController의 value 값을 μ‚¬μš©ν•©λ‹ˆλ‹€.

def sendLightModeColor(self, lightMode, interval, r, g, b):

sendLightModeColors

  • LED λͺ¨λ“œ μ„€μ •(Palette)

  • lightMode λ³€μˆ˜μ—λŠ” LightModeDrone, LightModeController의 value 값을 μ‚¬μš©ν•©λ‹ˆλ‹€.

def sendLightModeColors(self, lightMode, interval, colors):

sendLightEventColor

  • LED 이벀트 μ„€μ •(RGB)

  • lightEvent λ³€μˆ˜μ—λŠ” LightModeDrone, LightModeController의 value 값을 μ‚¬μš©ν•©λ‹ˆλ‹€.

def sendLightEventColor(self, lightEvent, interval, repeat, r, g, b):

sendLightEventColors

  • LED 이벀트 μ„€μ •(Palette)

  • lightEvent λ³€μˆ˜μ—λŠ” LightModeDrone, LightModeController의 value 값을 μ‚¬μš©ν•©λ‹ˆλ‹€.

def sendLightEventColors(self, lightEvent, interval, repeat, colors):

sendLightDefaultColor

  • LED κΈ°λ³Έ λͺ¨λ“œ μ„€μ •(RGB)

  • lightMode λ³€μˆ˜μ—λŠ” LightModeDrone, LightModeController의 value 값을 μ‚¬μš©ν•©λ‹ˆλ‹€.

def sendLightDefaultColor(self, lightMode, interval, r, g, b):

sendDisplayClearAll

  • ν™”λ©΄ 전체 μ§€μš°κΈ°

def sendDisplayClearAll(self, pixel = DisplayPixel.Black):

sendDisplayClear

  • ν™”λ©΄ 일뢀 μ§€μš°κΈ°

def sendDisplayClear(self, x, y, width, height, pixel = DisplayPixel.Black):

sendDisplayInvert

  • ν™”λ©΄ 일뢀 λ°˜μ „

def sendDisplayInvert(self, x, y, width, height):

sendDisplayDrawPoint

  • 점 찍기

def sendDisplayDrawPoint(self, x, y, pixel = DisplayPixel.White):

sendDisplayDrawLine

  • μ„  그리기

def sendDisplayDrawLine(self, x1, y1, x2, y2, pixel = DisplayPixel.White, line = DisplayLine.Solid):

sendDisplayDrawRect

  • μ‚¬κ°ν˜• 그리기

def sendDisplayDrawRect(self, x, y, width, height, pixel = DisplayPixel.White, flagFill = True, line = DisplayLine.Solid):

sendDisplayDrawCircle

  • 원 그리기

def sendDisplayDrawCircle(self, x, y, radius, pixel = DisplayPixel.White, flagFill = True):

sendDisplayDrawString

  • λ¬Έμžμ—΄ 그리기

def sendDisplayDrawString(self, x, y, message, font = DisplayFont.LiberationMono5x8, pixel = DisplayPixel.White):

sendDisplayDrawStringAlign

  • λ¬Έμžμ—΄ 그리기

  • x_start와 x_end 사이에 μ§€μ •ν•œ μœ„μΉ˜λ‘œ λ¬Έμžμ—΄μ„ μ •λ ¬ν•˜μ—¬ ν‘œμ‹œν•©λ‹ˆλ‹€.

def sendDisplayDrawStringAlign(self, x_start, x_end, y, message, align = DisplayAlign.Center, font = DisplayFont.LiberationMono5x8, pixel = DisplayPixel.White):

sendBuzzer

  • 버저 μž‘λ™

  • BuzzerModeκ°€ BuzzerMode.Scaleμ΄κ±°λ‚˜ BuzzerMode.ScaleReserve인 경우 valueμ—λŠ” BuzzerScale의 value 값을 μ‚¬μš©ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

  • BuzzerModeκ°€ BuzzerMode.Hzμ΄κ±°λ‚˜ BuzzerMode.HzReserve인 경우 valueμ—λŠ” Hz 값을 μ‚¬μš©ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

def sendBuzzer(self, mode, value, time):

sendBuzzerMute

  • 버저 무음

def sendBuzzerMute(self, time):

sendBuzzerMuteReserve

  • 버저 무음 μ˜ˆμ•½

def sendBuzzerMuteReserve(self, time):

sendBuzzerScale

  • 버저 μŒκ³„ μ‚¬μš©ν•˜μ—¬ μ†Œλ¦¬λ‚΄κΈ°

def sendBuzzerScale(self, scale, time):

sendBuzzerScaleReserve

  • 버저 μŒκ³„ μ‚¬μš©ν•˜μ—¬ μ†Œλ¦¬λ‚΄κΈ° μ˜ˆμ•½

def sendBuzzerScaleReserve(self, scale, time):

sendBuzzerHz

  • 버저 주파수 μ‚¬μš©ν•˜μ—¬ μ†Œλ¦¬λ‚΄κΈ°

def sendBuzzerHz(self, hz, time):

sendBuzzerHzReserve

  • 버저 주파수 μ‚¬μš©ν•˜μ—¬ μ†Œλ¦¬λ‚΄κΈ° μ˜ˆμ•½

def sendBuzzerHzReserve(self, hz, time):

sendVibrator

  • 진동

def sendVibrator(self, on, off, total):

sendVibratorReserve

  • 진동 μ˜ˆμ•½

def sendVibratorReserve(self, on, off, total):

Last updated