'Drone'에 해당되는 글 87건

  1. 2016.09.13 클린플라이트 설정 - G튜닝 사용법 - G tune instructions
  2. 2016.09.13 클린플라이트 설정 - 제어 - Controls
  3. 2016.09.12 클린플라이트 설정 - 비행중 조정 - In-flight Adjustments
  4. 2016.09.12 클린플라이트 설정 - 비행 모드 - Modes
  5. 2016.09.11 클린플라이트 설정 - 프로필 - Profiles
  6. 2016.09.11 클린플라이트 설정 - 초음파 센서 - Sonar
  7. 2016.09.09 클린플라이트 설정 - 부저 - Buzzer
  8. 2016.09.09 클린플라이트 설정 - 디스플레이 - Display
  9. 2016.09.09 클린플라이트 설정 - 띠형 LED - LED Strip
  10. 2016.09.09 클린플라이트 설정 - 텔레메트리 - Telemetry
  11. 2016.09.09 클린플라이트 설정 - 수신신호강도 - RSSI
  12. 2016.09.09 클린플라이트 설정 - GPS
  13. 2016.09.09 클린플라이트 설정 - 배터리 체크 - Battery Monitoring
  14. 2016.09.08 클린플라이트 설정 - 비상대책 - Failsafe
  15. 2016.09.08 클린플라이트 설정 - Spektrum bind support
  16. 2016.09.07 클린플라이트 설정 - 수신기 - Receiver, Rx
  17. 2016.09.07 클린플라이트 설정 - 시리얼 - Serial
  18. 2016.09.07 클린플라이트 설정 - 명령어입력 - CLI (2)
  19. 2016.09.07 클린플라이트 설정 - 설정 - Configuration
  20. 2016.09.07 클린플라이트 설정 - 설치 - Installation
  21. 2016.09.07 클린플라이트 설정 - 안전 - Safety
  22. 2016.09.06 클린플라이트 설정- 시작하기 - Getting Started
  23. 2016.09.06 클린플라이트 설정 - 개요 - Introduction
  24. 2016.09.01 F1, F3, F4 비행 콘트롤러
  25. 2016.08.17 레이싱드론 조립하기(1) - 부품
  26. 2016.04.01 Tower 앱으로 자동미션 날리기 (2)
  27. 2016.03.30 Pixhawk 쿼드콥터의 비행중 배터리 전압 하강 문제
  28. 2016.03.24 Pixhawk 쿼드콥터 조립(10) -비행계획수립(Mission Planning) (2)
  29. 2016.03.21 Pixhawk 기체 진동측정(Measuring Vibration)
  30. 2016.03.21 오픈드론맵(Open Drone Map) 설치
드론/쿼드콥터2016. 9. 13. 23:13

G튜닝 사용법 (G-Tune instructions)

이 알고리듬은 원래 Mohammad Hefny (mohammad.hefny@gmail.com)씨가 개발한 것입니다.

http://technicaladventure.blogspot.com/2014/06/zero-pids-tuner-for-multirotors.html
http://diydrones.com/profiles/blogs/zero-pid-tunes-for-multirotors-part-2
http://www.multiwii.com/forum/viewtopic.php?f=8&t=5190

Cleanflight 에 들어 있는 G-Tune 기능은 Harakiri 펌웨어에서 가져온 것입니다.

안전상 주의 : 각자의 책임임

여기에 구현된 내용은 상당히 다르며, 아크로(Acro)모드에서 ROLL/PITCH/YAW의 P 값만을 조정하기 위한 목적입니다. 아크로모드로 비행할 때(다름모드에서는 yaw tune이 가능함 - 아래를 볼 것) 콥터가 시동이 걸려있는 동안, AUX 박스(스위치)를 사용하여 G-Tune을 활성화시킬 수 있습니다.

미리 정의된 범위(아래를 볼것)에서 원하는/가능한 축(아래를 볼 것)을 튜닝하기 시작할 것입니다.

활성화된 후, 아마 아무런 변화도 보지 못할 것입니다. 즉, G-Tune은 콥터를 흔들기 시작하는 게 아니라, 직접 흔들어야 합니다.(아니면 그냥 날리면 작동합니다.)

G_Tune은 자이로 오류에 기반이므로, RC 입력을 넣지 않았을때(입력을 넣는다는 것은 또다른 오류)만 활성화됩니다. 따라서, roll만 입력하면 pitch와 yaw 가 튜닝됩니다. rolling을 멈추면 G-Tune 이 대략 450 ms 동안 축이 안정되기 기다렸다가 해당 축을 다시 튜닝하기 시작합니다. 각 축은 독립적으로 취급됩니다.

모든 축을 한꺼번에 튜닝하는 가장 좋은 방법은 아크로 모드에서 (RC는 중심에, G_Tune은 활성화 된 상태로) 콥터를 공중점프(air-jump) 시키는 것입니다.

설정프로그램 GUI에서 기본값으로 축들의 P값을 너무 높게 설정하면, 콥터가 불안정하게 흔들기는게 감지되고, P 값이 하향 Tuning 됩니다. (하지만, 강도 설정시 주의해야 함 - 아래를 볼 것)

(트라이콥터와 같이) 모터가 3개 이하인 콥터에서는 Yaw 튜닝이 비활성화됩니다.

수평(Horizon or Level) 모드에서 G-Tune은 Yaw 축에만 영향을 미칩니다. (모터가 3개 이상일 경우)

결과는 GUI에서 볼 수 있습니다. 콥터가 시동해제된 상태에서 G-Tune을 활성화시키는 경우에만 튜닝 결과가 저장되며, 시동을 걸면 전에 사용한 G-Tune이 사용됩니다???(G-Tune was used before when armed). 다른 방법으로 설정을 저장하는 방법도 있습니다.(GUI에서 save 버튼능 누르거나, 트리밍과 함께 eepromwrite를 시행하거나, ACC 교정 등)

TPA와 G_Tune : 테스트되지 않았으며, 아마도 좋은 결과가 나오지 않을 것으로 예상됩니다. 하지만, G_Tune을 TPA 를 대신하여 사용할 수 있을 것입니다.

일반적으로 다음의 순서를 따릅니다.

  1. 시동
  2. G-tune 활성화
  3. 천천히 상승. (Roll, Pitch / Yaw)은 건드리지 말것. 
  4. 결국 콥터는 잘 날것임. 아마도 throttle을 살짝 툭 밀면 약간 날 것임. 툭 밀때마다 진동이 줄어들어 부드러워지고, 전반적인 비행성능이 좋아짐을 유의해서 볼 것.
  5. G-tune 비활성화
  6. 착륙
  7. 시동해제. 단 전원을 끄지는 말것
  8. 원하는 결과를 얻었다면 a) Cleanflight GUI를 접속하여 검토후 설정을 저장 b) G-Tune 을 다시 활성화하여 설정을 저장
  9. 전원끔

결과가 만족스럽지 않다면 아래에 보이는 변수들을 변경시켜보고 다시 시도합니다.

다른 주의할 점 및 상세 설명은 아래 글들을 참고하세요.

http://www.rcgroups.com/forums/showpost.php?p=31321635&postcount=6160
http://www.rcgroups.com/forums/showpost.php?p=31525114&postcount=7150

관련 변수 및 기능(Parameters and their function)

gtune_loP_rll        = 10  [0..200] G-Tune 중 Roll P 값의 하한선 10은 GUI에서 1.0 임
gtune_loP_ptch       = 10  [0..200] G-Tune 중 pitch P 값의 하한선 10은 GUI에서 1.0 임
gtune_loP_yw         = 10  [0..200] G-Tune 중 yaw P 값의 하한선 10은 GUI에서 1.0 임
gtune_hiP_rll        = 100 [0..200] G_Tune 중 Roll P 값의 상한선. 0은 해당 축은 
                        튜닝하지 않겠다는 뜻. "100" 은 GUI에서 10.0 임
gtune_hiP_ptch       = 100 [0..200] G_Tune 중 Pitch P 값의 상한선. 0은 해당 축은 
                        튜닝하지 않겠다는 뜻. "100" 은 GUI에서 10.0 임
gtune_hiP_yw         = 100 [0..200] G_Tune 중 Yaw P 값의 상한선. 0은 해당 축은 
                        튜닝하지 않겠다는 뜻. "100" 은 GUI에서 10.0 임
gtune_pwr            = 0   [0..10] 조정 강도(Strength of adjustment)
gtune_settle_time    = 450 [200..1000] 안정화 시간 (ms)
gtune_average_cycles = 16  [8..128] 자이로 평균 계산시 사용되는 looptime cycles의 수

따라서, 모든 축의 P에 대해 하한선 및 상한선이 존재합니다. 미리 정해진 범위(GUI: 1.0 - 10.0)는 대부분의 설정을 대표하는 상당히 넓은 범위입니다.???

좀더 빡빡한 또는 느슨한 범위가 좋다면 여기에서 변경합니다. gtune_loP_XXX는 10 이하(GUI에서 1.0)로 설정할 수 있습니다. Zero P로 둘 수 있지만, 처음에 상당히 느릿느릿 반응하는 걸 보실 것입니다.

어떤 한 축을 튜닝하고 싶지 않다면, gtune_hiP_XXX를 0 로 두셔야 합니다. 예를 들어 yaw 튜닝을 비활성화 하고 싶다면, CLI에서 [set gtune_hiP_yw = 0] 라고 씁니다. 참고 : MultiWii Wiki서는, yaw 축에 대한 트림은 송신기에서 하는 것을 추천합니다. 만약에 그렇게 한다면 (yaw가 RC에서 중앙이 아님) yaw 튜닝을 비활성화해야 합니다.

튜닝 강도는 [set gtune_pwr = N]으로 조정할 수 있습니다. 저의 작은 콥터는 0 으로 잘 동작하고 "3"은 싫어합니다. 제 큰 콥터는 "gtune_pwr = 5"를 좋아합니다. It shifts the tuning to higher values and if too high can diminish the wobble blocking! 튜닝결과 P 값이 원하는 것보다 낮을 경우, gtune_pwr를 올립닏. 하지만, 이 값이 너무 높으면 약간 불안정해 집니다.

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Gtune.md

이전글 : 제어(Controls)

다음글 : 블랙박스 비행데이터 기록기(Blackbox flight data recorder)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 13. 21:53

제어(Controls)

시동걸기(Arming)

시동을 걸면 기체는 비행 준비상태가 되며 throttle이 적용되면 모터가 회전합니다. 시동이 걸리면 모터는 낮은 상태로 회전하는데, MOTOR_STOP 을 설정하면 이 기능을 비활성화할 수 있습니다. 하지만, 안전상의 이유로 이는 추천하지 않습니다.

기본값은 시동과 시동해제를 조종간(stick)의 위치로 작동시키는 것입니다. (스위치를 사용하여 시동을 걸 경우 이 기능은 해제됩니다.)

조건에 따라 시동이 비활성화 됩니다. 이 경우 보드에 있는 경고 LED가 정해진 수만큼 반짝입니다. 그 내용은 다음과 같습니다.

Reason for disabled ArmingLED Flashes

설정프로그램(Configurator)에서 CLI가 활성화 되어 있음

2
비상대책 모드가 활성화 되어 있음3
기체가 비상대책 모드로 착륙한 상태임3
최대 시동 각도를 초과했음4

교정(Calibration)이 활성화되어 있음

5

시스템이 과적재되어 있음

6

조종간 위치(Stick Positions)

세가지 조종간 위치는 :

위치(Position)대략적인 채널 입력
낮음(LOW)1000
중앙(CENTER)1500
높음(HIGH)2000

조종간 위치에 따라 여러가지 기능을 활성화 시킬 수 있습니다.

FunctionThrottleYawPitchRoll
시동(ARM)LOWHIGHCENTERCENTER
시동해제(DISARM)LOWLOWCENTERCENTER

프로필 1(Profile 1)

LOWLOWCENTERLOW
프로필 2(Profile 2)LOWLOWHIGHCENTER
프로필 3(Profile 3)LOWLOWCENTERHIGH
자이로 교정LOWLOWLOWCENTER
가속도계 교정HIGHLOWLOWCENTER
전자나침반 교정HIGHHIGHLOWCENTER
비행중 교정 제어LOWLOWHIGHHIGH

Trim Acc Left

HIGHCENTERCENTERLOW
Trim Acc RightHIGHCENTERCENTERHIGH
Trim Acc ForwardsHIGHCENTERHIGHCENTER
Trim Acc BackwardsHIGHCENTERLOWCENTER
LCD 페이지 순환 해제LOWCENTERHIGHLOW

LCD 페이지 순환 활성화

LOWCENTERHIGHHIGH
설정 저장LOWLOWLOWHIGH

Yaw 조정

조종간으로 시동/시동해제를 하는 동안, Yaw 조종간은 끝 위치로 가게 됩니다. 지상에서 시동/시동해제를 하는 동안 Yaw가 작동하는 것을 막기 위하여, throttle이 낮은(LOW)위치 (즉, min_check 설정 아래)에 있는 동안은 yaw 입력이 기체에 영향을 주지 않습니다.

트라이콥터(tricopter)의 경우, 이륙전 꼬리 서보(tail servo)가 올바르게 작동하는 지 확인하기 위하여 지상에 있는 동안에도 yaw 기능을 유지하고 싶을 수 있습니다. CLI에서 tri_unarmed_server를 ON으로 설정하면 됩니다.(기본값입니다.) 시동/시동해제시 꼬리 로터가 지표면에 닿는데 따른 문제가 있다면, 이를 0으로 설정하실 수 있습니다. 아래 테이블을 통해 어떤 값이 적절한지 결정하세요.

Is yaw control of the tricopter allowed?
DisarmedArmed
Throttle lowThrottle normalThrottle lowThrottle normal
tri_unarmed_servo = OFFNoNoNoYes
NoNoNoYes
tri_unarmed_servo = ONYesYesYesYes
YesYesYesYes

Throttle 설정 및 상호작용(interaction)

[min_command] - motor stop이 활성화된 상태에서 throttle이 min_check 이하로 내려가거나 시동해제 되었을 때, ESC로 보내지는 명령입니다. motor stop이 비활성화된 상태에서는 콥터가 시동해제 되었을 때만 명령이 보내집니다. 안전을 위하여 반드시 모터 회전 이하로 설정해야 합니다.

[min_check] - 스위치 시동 모드가 사용중일 때, throttle을 min_check 이하로 내리면 모터가 min_throttle 속도로 회전하게 됩니다. 기본 조종간 시동을 사용할 경우, throttle을 min_check 이하로 내리면 모터가 min_throttle 로 회전하고, 시동을 걸거나 끌 수 있도록 yaw가 비활성화 됩니다. motor stop이 활성화된 상태에서 throttle을 min_check 이하로 내리면 모터가 꺼지고 ESC에는 min_command 가 보내지게 됩니다. Min_check 는 반드시 throttle throw에 100% 신뢰하게 만족시킬 수 있는 수준으로 설정해야 합니다. ??? 너무 낮은 값으로 설정하면 콥터가 시동해제 되지 않는 위험한 상황이 발생할 수 있습니다. 이 값을 min_throttle 이하로 설정하는 것은 무방합니다. FC가 자동적으로 ESC에 출력을 조절하게 됩니다.

[min_throttle] - 일반적으로 모든 모터가 안정적으로 회전하는 수준 바로 위로 설정합니다. 때로는 고급 기동시 stall 방지를 위하여 약간 높게 설정하거나, 원하는 결과가 나오도록 상당히 높게 설정하기도 합니다. 모터가 스톱된 상태로 시동되면, 모터는 이 명령으로 회전하므로, 안전상 반드시 유념해야 합니다.

[max_check] - Throttle이 이 수준 이상이 되면 ESC에 max_command를 보냅니다.

[max_throttle] - 이는 비행 콘트롤러로부터 ESC에 보내는 최대 명령(max command)입니다.

이 용어에 대한 상세한 설명은 아래 Josha Bardwell의 유튜브를 참고하세요.

https://www.youtube.com/watch?v=WFU3VewGbbA

https://www.youtube.com/watch?v=YNRl0OTKRGA

Deadband

Yaw, roll, Pitch 조정간이 신뢰성있게 중앙으로 돌아오지 못하거나, 무선이 중앙점 부근에서 상당히 많은 잡음이 발생할 경우, deadband를 적용할 수 있다. deadband의 값은 각각 상하측에 적용된다. 상측에 반, 하측에 반이 적용되는 것이 아니다. deadband 값은 조종간 끝 값에 영향을 준다. axis 값은 적용된 deadband 값만큼 축소된다.

[deadband] - roll, pitch 에 적용됨

[yaw_deadband] - Yaw에만 적용됨

===

원본 : https://github.com/cleanflight/cleanflight/blob/master/docs/Controls.md

이전글 : 비행중 조정(In-flight Adjustments)

다음글 : G-Tune instructions

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 12. 18:12

비행중 조정(In-flight Adjustments)

Cleanflight를 사용하면 기체가 비행중에도 송신기로부터 AUX 채널을 사용하여 여러가지 설정을 조정할 수 있습니다. 

경고(Warning)

비행중 설정을 변경시키면 기체가 불안정해지고 추락할 수 있습니다.

추천사항(Recommendations)

  • 설정을 변경할 때는 반드시 넓은 지역에서 비행하세요.
  • 약간만 조정하고 조심스럽게 비행하면서 테스트하세요.
  • 충분한 공간과 시간을 투자하여 기체의 반응을 변경시킬 수 있는 조정을 하세요.
  • 조정 채널 스위치/포트 등을 중앙 위치로 변경을 한뒤 TX와 기체에 전원을 넣어야 합니다.
  • 가능하다면 송신기의 경고 스위치를 전용 조정 스위치로 설정하세요???
  • 임시로 3 Position 스위치를 사용하는 것이 가장 바람직 합니다. 즉, 손을 놓으면 자동으로 중앙으로 돌아가는 스위치를 사용하세요.

개요(Overview)

동시에 4개의 RX 채널까지 조정에 사용할 수 있습니다.

한 채널의 조정은 다른 채널로 제어할 수 있습니다.

지상에서는 물론 비행중에 아래와 같은 조정을 할 수 있습니다.

  • RC Rate 
  • RC Expo 
  • Throttle Expo 
  • Roll & Pitch Rate 
  • Yaw Rate 
  • Pitch+Roll P I and D 
  • Yaw P I and D

시나리오 예 : 최대 4개의 3 position 스위치/포트를 사용하여 4가지 설정을 동시에 변경할 수 있습니다. 하나의 2/3/4/5/6/x position 스위치를 사용하면 3position 스위치가 하나의 설정을 한번에 변경할 수 있습니다.???

스위치와 포트를 결합하여 사용할 수 있습니다. 따라서 6개의 POS 스위치까지 사용할 수 있습니다.??

설정은 자동적으로 설정되지 않으므로, GUI를 연결하여 refresh 후 저장하거나, 시동해제시 조종간을 사용하여 저장합니다. 저장하지 않고 전원을 끄면 조정한 내용이 사라집니다.

설정은 시동해제시 조종간 위치로 저장할 수 있습니다. Throttle 낮음, Yaw 왼쪽, Pitch 낮음, Roll 오른쪽. (조종간을 둘다 낮게 + 각각 바깥쪽으로)

조정 스위치(Adjustment Switches)

스위치는 ON-OFF-ON, PORT 혹은 순간 ON-OFF-ON을 사용할 수 있습니다. 마지막을 추천합니다.

스위치를 가운데 위치로 되돌리면 값은 증가하거나 감소하지 않습니다.

스위치를 높음/낮음 쪽으로 누르고 다시 가운데로 되돌리면 값은 적어도 한번은 변경됩니다. 좀더 빠른 속도로 증가/감소 시키고자 할 때 기다렸다가 스위치를 누를 필요는 없습니다.??? 조종 스위치를 높음/낮음으로 유지하는 동안 조종 함수가 적용되며, 값이 1초에 두 번씩 증가/감소되며, 이때 비행콘트롤러는 짧은 신호음, 긴 신호음을 각각 내보냅니다. 키보드 반복과 비슷한 방법으로 작동됩니다.

힌트 : OpenTX 송신기의 경우, 두개의 임시 OFF-ON 스위치로 하나의 채널을 제어할 수 있습니다. 왼쪽 임시 스위치는 값을 감소시키도록 설치하고, 오른쪽은 값을 증가하도록 합니다. 믹서를 사용하여 실험해 보세요.

설정(Configuration)

CLI 명령인 [adjrange]를 사용하여 범위를 조정할 수 있습니다.

12개의 조종 범위를 정의할 수 있습니다. 4개의 조종을 동시에 할 수 있으며, 각각의 동시 조종은 하나의 조종 슬롯(solt)이 필요합니다.

다음 명령을 사용하면 현재의 범위를 알 수 있습니다.

adjrange

범위를 설정하려면 다음 명령을 사용합니다.

adjrange <index> <slot> <range channel> <range start> <range end> <adjustment function> <adjustment channel>

ArgumentValue

의미

Index0 - 11

설정할 조정 범위(adjustment range)

슬롯(Slot)0 - 3사용할 조정 슬롯(adjustment slot)
Range Channel0 based index, AUX1 = 0, AUX2 = 1조정할 스위치/포트에 할당할 AUX 채널
Range Start900 - 2100. Steps of 25, e.g. 900, 925, 950...시작 범위
Range End900 - 2100End of range
Adjustment function0 - 11

아래 조정 함수 참고

Adjustment channel0 based index, AUX1 = 0, AUX2 = 13 position 스위치로 제어되는 채널

범위 시작/끝 값은 수신기에서 보내주는 값과 일치해야 합니다.

일반적으로 범위채널과 슬롯 값은 다중 조정 범위로 서로 묶습니다. 

범위 채널과 조정 채널은 같은 채널이 될 수 있습니다. 3 position 스위치를 다른 스위치 위치에 관계없이 하나의 조정 함수로 대응 시키고자 할때 유용합니다. 

조정채널이 범위값 사이에 있을 때 조정 함수(Adjustment function)가 조정 채널에 적용됩니다. 조정 채널이 높음/낮은 위치에 있을 때 조정이 이루어집니다. high = mid_rc + 200, low = mid_rc - 200.기본 값은 각각 1700과 1300입니다. 

When the Range Channel does not fall into Start/End range the assigned slot will retain it's state and will continue to apply the adjustment. For this reason ensure that you define enough ranges to cover the range channel's usable range.

범위 채널이 시작/끝 범위에 들어오지 않을 때, 할당된 슬롯은 현재의 상태를 보유하며 계속하여 조정을 적용합니다. 따라서 범위 채널의 사용가능 범위를 충분하게 커버할 수 있도록 정의해야 합니다. ???

조정 함수(Adjustment function)

ValueAdjustmentNotes
0None
1RC RATE
2RC_EXPO
3THROTTLE_EXPO
4PITCH_ROLL_RATE
5YAW_RATE
6PITCH_ROLL_P
7PITCH_ROLL_I
8PITCH_ROLL_D
9YAW_P
10YAW_I
11YAW_D
12RATE_PROFILESwitch between 3 rate profiles using a 3 position switch.
13PITCH_RATE
14ROLL_RATE
15PITCH_P
16PITCH_I
17PITCH_D
18ROLL_P
19ROLL_I
20ROLL_D

예 1) 3 position 스위치로 pitch/roll rate를 조정할 때

adjrange 0 0 3 900 2100 4 3

설명 : 

adrange 0를 AUX4(3)이 900-2100 범위 내에 들어 올 때 조정 슬롯 1에 배정합니다. AUX4(3)이 적당한 위치에 들어오면 조정 4(Pitch/Roll rate)를 사용합니다.

예 2) 2position 스위치로  3 position 스위치를 통해 RC rate 의 조정을 활성화하는데 사용합니다.

adjrange 1 1 0 900 1700 0 2
adjrange 2 1 0 1700 2100 1 2

설명 :

  • adrange 1을 AUX1(0)이 800-1700 내에 들어올 때 조정슬롯 2에 배정합니다. AUX3(2)이 어떤 위치에 있든 아무것도 하지 않습니다.(0)
  • adrange 2를 AUX1(0)이 1700-2100 내에 들어올 때 조정슬롯 2에 배정합니다. AUX 3(2)가 적당한 위치에 들어오면 조정 1(RC rate)를 사용합니다.

Without the entire range of aux1 being defined there is nothing that would stop aux 3 adjusting the pitch/roll rate once aux 1 wasn't in the higher range.

AUX1 이 완전한 범위로 정의되지 않으면, AUX 1의 높은 범위에 있지 않을 때, AUX3 이 pitch/roll 을rate 를 조정하는 것을 막을 방법이 없습니다.???

예 3) 6 position 스위치로, 3position 스위치를 통해 PID 튜닝 조정을 선택하는데 사용합니다.

adjrange 3 2 1 900 1150 6 3
adjrange 4 2 1 1150 1300 7 3
adjrange 5 2 1 1300 1500 8 3
adjrange 6 2 1 1500 1700 9 3
adjrange 7 2 1 1700 1850 10 3
adjrange 8 2 1 1850 2100 11 3

설명 :

  • configure adjrange 3 to use adjustment slot 3 (2) so that when aux2 (1) in the range 900-1150 then use adjustment Pitch/Roll P (6) when aux 4 (3) is in the appropriate position. 
  • configure adjrange 4 to use adjustment slot 3 (2) so that when aux2 (1) in the range 1150-1300 then use adjustment Pitch/Roll I (7) when aux 4 (3) is in the appropriate position. 
  • configure adjrange 5 to use adjustment slot 3 (2) so that when aux2 (1) in the range 1300-1500 then use adjustment Pitch/Roll D (8) when aux 4 (3) is in the appropriate position. 
  • configure adjrange 6 to use adjustment slot 3 (2) so that when aux2 (1) in the range 1500-1700 then use adjustment Yaw P (9) when aux 4 (3) is in the appropriate position. 
  • configure adjrange 7 to use adjustment slot 3 (2) so that when aux2 (1) in the range 1700-1850 then use adjustment Yaw I (10) when aux 4 (3) is in the appropriate position. 
  • configure adjrange 8 to use adjustment slot 3 (2) so that when aux2 (1) in the range 1850-2100 then use adjustment Yaw D (11) when aux 4 (3) is in the appropriate position.

예 4) 3 position 스위치로 3가지 다른 rate 프로필을 변경합니다.

adjrange 11 3 3 900 2100 12 3

설명 :

  • adjrange 11을 AUX4(3)가 900-2100 사이에 있을 때 조정 슬롯 4(3)으로 사용하도록 설정합니다. 그러면 AUX(4)가 적절한 위치에 있을 때 조정 Rate 프로필(12) 을 사용합니다.

스위치가 낮은 위치면 rate 프로필 0 이 선택됩니다. 스위치가 중간 위치면 rate 프로필 1이 선택되고, 높은 위치면 rate 프로필 2가 선택됩니다.

GUI 설정프로그램 예제

아래 5개의 이미지는 유효한 설정입니다. 모든 경우에서 Range 채널을 위하여 전체 사용가능한 범위가 사용됩니다.???





아래 예는 잘못된 설정입니다. - 두가지 경우 모두, Range 채널을 위해 전체 사용가능한 범위가 사용되지 않았습니다.


다음의 예는 잘못된 설정(위)에 "No changes" 용 범위를 추가하여 수정한 것입니다.

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Inflight%20Adjustments.md

이전글 : 비행 모드(Modes)

다음글 : 제어(Controls)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 12. 09:24

비행 모드(Modes)

Cleanflight는 여러가지 모드가 있어서 켜거나 끌 수 있습니다. 모드는 조종간(stick) 위치 보조 수신기 채널, 기타 비상대책 감지 같은 이벤트를 통해 활성화 비활성화 할 수 있습니다.

MSP IDCLI IDShort NameFunction
00ARM모터와 비행 안정화 활성화
11ANGLE예전의 자동레벨(auto-level) 비행 모드
22HORIZON자동레벨(Auto-level) 비행 모드
33BARO

고도고정(Altitude hold) 모드
(기압계 센서 필요)

4N/AVARIOUnused
54MAG방향 고정(Heading lock)
65HEADFREE

방향 자유(Head Free) - yaw 가
pitch/roll 입력에 영향을 주지 않음

76HEADADJ

방향 변경(Heading Adjust) - HEADFREE
모드에새로운 yaw 원점 부여

87CAMSTAB카메라 안정화(Camera Stabilisation)
98CAMTRIGUnused
109GPSHOME

HOME 위치로 자동 비행

1110GPSHOLD동일한 좌표 유지
1211PASSTHRU

RX로부터 roll/yaw/pitch 값을 

Airplane에 직접 전달

1312BEEPERON소리 활성화 - 추락기체 탐색에 편리함
1413LEDMAX
1514LEDLOW
1615LLIGHTS
1716CALIB
1817GOVUnused
1918OSD

OSD 활성/비활성화

2019TELEMETRY텔레메트리 활성화(스위치로)
2120GTUNE

G-Tune - Pitch/Roll/Yaw P 값을
자동 튜닝

2221SONAR

고도고정(Altitude hold) 모드
(초음파 센서 전용)

2322SERVO1Servo 1
2423SERVO2Servo 2
2524SERVO3Servo 3
2625BLACKBOX블랙박스 기록 활성화
2726FAILSAFE비상대책 2단계 수동으로 진입
2827AIRMODE

안정적인 콥터를 위한
별도의 Mixer와 추가 PID 로직

모드 상세(Mode details)

방향 자유(Headfree)

방향 자유 모드에서는 멀티콥터의 "방향(head)" 가 항상 최초로 기능이 활성화된 때와 동일한 방향을 가르킵니다. 즉, 멀티콥터가 Z 축(yaw)방향으로 회전하여도, 동일한 "head" 방향에 따라 반응합니다.

이 모드를 사용하면 멀티콥터를 조종하기가 쉽습니다. 기체의 앞쪽이 물리적으로 나를 향하고 있다고 해도 이와 관계없이 조종 되기 때문입니다. 특히 이 모드는 멀티콥터 초보자에게 친숙한 모드로, 앞쪽 방향을 몰라도 조종을 할 수 있습니다.

GPS Home위치로 복귀(Return To Home)

현재 작업중입니다. 이 모드는 아직 안정적이 아니므로, 사용하다가 경험하신 부분을 개발자에게 알려주시면 감사하겠습니다.

이 모드에서는 기체가 시동걸렸을 때 기록된 GPS 위치로 기체가 돌아옵니다.

이 모드는 Angle 혹은 Horizon 모드, 고도고정(Altitude hold) 모드와 함께 사용해야 합니다.

GPS가 3D 고정이 되어야 하며 최소 5개의 위성이 보여야 합니다.

GPS 위치 고정(GPS Position Hold)

현재 작업중입니다. 이 모드는 아직 안정적이 아니므로, 사용하다가 경험하신 부분을 개발자에게 알려주시면 감사하겠습니다.

이 모드에서는 이 모드가 활성화된 시점의 GPS 위치에 계속 머무르려고 시도합니다.

비활성화하고 다시 활성화하면 GPS 위치를 재설정합니다.

이 모드는 Angle 혹은 Horizon 모드, 고도고정(Altitude hold) 모드와 함께 사용해야 합니다.

GPS가 3D 고정이 되어야 하며 최소 5개의 위성이 보여야 합니다.

에어모드(AirMode)

In the standard mixer / mode, when the roll, pitch and yaw gets calculated and saturates a motor, all motors will be reduced equally. When motor goes below minimum it gets clipped off. Say you had your throttle just above minimum and tried to pull a quick roll - since two motors can't go any lower, you essentially get half the power (half of your PID gain). If your inputs would asked for more than 100% difference between the high and low motors, the low motors would get clipped, breaking the symmetry of the motor balance by unevenly reducing the gain. Airmode will enable full PID correction during zero throttle and give you ability for nice zero throttle gliding and actobatics. 

표준적인 믹서 모드에서는 roll/pitch/yaw가 모터를 계산하고 포화시켜서 ???, 모든 모터가 동등하게 속도를 줄이게 됩니다. 모터가 최하한선 밑으로 가게 되면 꺼지게 됩니다. 현재 throttle의 최하한선 바로 위에 있다고 가정하고 빠르게 roll을 당겼다고 해보죠. 두개의 모터는 하한 아래이기 때문에 출력이 반으로 떨어지는 결과가 됩니다. (half of your PID gain ???) 빠른 모터와 늦은 모터간에 100%이상 차이나도록 조작할 경우, 늦은 모터는 꺼지게 되어 이득(gain)이 불균등하게 감소함으로써 모터 균형의 대칭성이 깨어지게 됩니다. 에어모드(Airmode)는 throttle 0 동안 PID 조정을 최대로 하여, zero throttle gliding 과 acrobatics를 할 수 있도록 해줍니다.???

But also the cornering / turns will be much tighter now as there is always maximum possible correction performed. Airmode can also be enabled to work at all times by always putting it on the same switch like your arm switch or you can enable/disable it in air. Additional things and benefits: Airmode will additionally fully enable Iterm at zero throttle. Note that there is still some protection on the ground when throttle zeroed (below min_check) and roll/pitch sticks centered. This is a basic protection to limit motors spooling up on the ground. Also the Iterm will be reset above 70% of stick input in acro mode to prevent quick Iterm windups during finishes of rolls and flips, which will provide much cleaner and more natural stops of flips and rolls what again opens the ability to have higher I gains for some. Note that AIRMODE will also overrule motor stop function! It will basically also act as an idle up switch.

그뿐 아니라, 최대한 많은 조정이 시행되므로, 코너링/턴이 훨씬 빡빡하게 이루어지게 됩니다. 에어모드는 또한 시동스위치와 동일한 스위치에 설정하여 항상 동작하도록 할 수도 있고, 공중에서 활성화/비활성화 시킬 수도 있습니다. 추가적인 장점 : 에어모드는 추가적으로 0 throttle에서 Iterm을 완벽하게 활성화시킵니다. 참고로 0 throttle (below min_check)이고 roll/pitch 가 중앙에 있을 때 기본적인 약간의 보호장치가 있습니다.???? 지상에서 모터가 떠오르지 못하도록 제한하는 기본적인 보호장치입니다. ??? 아울러 Iterm 은 70% 스틱 입력 위에서 재설정됩니다. Roll/Flip 을 끝낼 때 너무 빠른 Iterm 마무리를 방지하기 위해서 입니다. 이렇게 되면 Roll/Flip이 훨씬더 깔끔하고 자연스러워지며, I 게인을 어느정도 더 높일 수 있는 길이 열리게 됩니다. 참고로 에어모드는 모터정지 기능을 덮어쓰게 됩니다!! 또한 기본적으로 idle up 스위치로 작동됩니다. ????

보조채널 설정(Auxiliary Configuration)

예비용 보조 수신기 채널을 사용하여 여러가지 모드를 활성화/비활성화 시킬 수 있습니다. 일부 모드는 이 방법으로만 활성화시킬 수 있습니다.

수신기를 설정하여, 스위치 혹은 다이얼을 조작하면 5번 채널 이상의 채널 데이터를 송신하도록 합니다. (처음 4개의 채널은 일반적으로 throttle, aileron, rudder, elevator 채널로 할당되어 있습니다.)

예를 들어 3 positon 스위치를 낮은 위치에서 1000을 보내도록 설정하고 중간 위치에서 1500, 높은 위치에서 2000을 보내도록 설정할 수 있습니다.

tx/rx 채널 한계를 1000부터 2000까지의 값을 사용하도록 설정합니다. 모드 range에서 사용하는 범위는 900 부터 2000으로 고정됩니다.

채널이 지정된 범위 이내에 들어오면 해당되는 모드가 활성화됩니다. 

GUI 설정 도구를 이용하면 쉽게 설정할 수 있습니다.

CLI

CLI 명령 [aux] 를 사용하면 보조채널 설정이 가능합니다. 다음과 같은 5개의 매개변수가 필요합니다.

  • AUD 범위 슬롯 번호 (0 - 39) 
  • 모드 id (위에 있는 리스트를 보세요.)
  • AUX 채널 인덱스 (AUX1 = 0, AUX2 = 1,... etc) 
  • 낮은 위치, 900 부터 2100. 25의 배수여야 합니다.
  • 높은 위치, 900 부터 2100. 25의 배수여야 합니다.

낮은위치와 높은위치가 동일한 값을 사용하면 무시됩니다.

예를 들어 AUX 범위 슬롯 0를 AUX1이 1700-2100 사이에 들어오면 ARM을 활성화하도록 설정할 경우, 다음과 같이 설정합니다.

aux 0 0 0 1700 2100

아무런 매개변수없이 [aux] 명령을 사용하면 현재의 AUX 설정 정보가 표시됩니다.

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Modes.md

이전글 : 프로필(Profiles)

다음글 : 비행중 조정(In-flight Adjustments)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 11. 22:41

프로필 (Profiles)

프로필이란 설정 값의 모음입니다.

현재 프로필은 3개까지 지원됩니다. 기본 프로필은 0입니다.

프로필 변경(Changing Profiles)

프로필은 GUI를 통해 바꿀 수 있습니다. 다음과 같은 스틱 조합을 통해서도 바꿀 수 있습니다.

ProfileThrottleYawPitchRoll
0DownLeftMiddleLeft
1DownLeftUpMiddle
2DownLeftMiddleRight

CLI [profile] 명령으로도 가능합니다.

profile <index>

Rate 프로필

Cleanflight는 일반 프로필외에 Rate 프로필을 지원합니다.

Rate 프로필에는 조종 입력에 따은 기체 반응 방법을 조정하는 설정이 들어 있습니다.

세가지 Rate 프로필이 지원됩니다.

Rate 프로필은 비행중 조종 기능을 사용하여 비행하는 동안에도 선택할 수 있습니다.

각각의 일반 프로필은 'default_rate_profile'이라는 설정이 있습니다. 프로필이 활성화되면, 해당되는 rate 프로필도 활성화됩니다.

프로필 0 는 기본 rate 프로필이 0 입니다. 프로필 1 은 기본 rate 프로필이 1 이고 Profile 2는 기본 rate 프로필이 2입니다.

이처럼 기본적으로 프로필과 rate 프로필을 쉽게 설정할 수 있도록 되어 있습니다. ????

현재의 rate 프로필은 CLI [rateprofile] 명령을 사용하여 설정하거나 볼 수 있습니다.

rateprofile <index>

rate 프로필에 포함된 값들은 CLI [dump reates] 라는 명령을 사용하여 볼 수 있습니다. 아래는 그 예입니다.

# dump rates

# rateprofile
rateprofile 0

set rc_rate = 90
set rc_expo = 65
set thr_mid = 50
set thr_expo = 0
set roll_pitch_rate = 0
set yaw_rate = 0
set tpa_rate = 0
set tpa_breakpoint = 1500

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Profiles.md

이전글 : 초음파센서(Sonar)

다음글 : 모드(Modes)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 11. 17:33

초음파 센서(Sonar)

초음파 센서는 기압계(BARO)와 초음파(SONAR) 고도 고정 모드를 사용하여 높이를 측정하는데 사용될 수 있습니다.

초음파 센서는 낮은 고도(지상 3.5미터 이하)에서 압력센서(기압계) 대신 사용할 수 있습니다. 초음파센서는 기체 기울기(자세)가 작을 때(22.5도 이하)만 사용할 수 있습니다.

하드웨어(Hardware)

현재 주 지원 센서는 HCSR04 센서입니다. Parallax 28015 단선(single-wire) 소나도 Trigger와 Echo 핀에 1k 저항을 연결하면 사용할 수 있습니다. 또한 저항 반대편은 서로 연결하고 소나 모듈과 연결시키면 됩니다. ???

          1k
TRIGGER--/\/\--\
                \_______ 28015 SONAR
          1k    /
ECHO-----/\/\--/

연결(Connections)

Maze/Flip32+

ModeTriggerEchoInline 1k resistors
Parallel PWM/ADC current sensorPB8 / Motor 5PB9 / Motor 6NO (5v tolerant)
PPM/Serial RXPB0 / RC7PB1 / RC8YES (3.3v input)
제한

전력계는 병렬식 PWM, 초음파 센서와 함께 사용할 수 없습니다.

Olimexino

TriggerEchoInline 1k resistors
PB0 / RC7PB1 / RC8YES (3.3v input)
제한

전력계는 초음파 센서와 함께 사용할 수 없습니다.

CC3D

TriggerEchoInline 1k resistors
PB5 / RC4PB0 / RC5YES (3.3v input)
제한 

초음파 센서는 Softserial 또는 병렬식 PWM과 함께 사용할 수 없습니다.

SPRacingF3

TriggerEchoInline 1k resistors
PB0 / RC7PB1 / RC8YES (3.3v input)
제한

초음파 센서는 SoftSerial2 또는 병렬식 PWM과 함께 사용할 수 없습니다.

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Sonar.md

이전글 : 부저(Buzzer)

다음글 : 프로필(Profiles)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 9. 22:42

부저(Buzzer)

Cleanflight 는 다음과 같은 목적에 사용되는 부저를 지원합니다.

  • 저전압 경고 (배터리 모니터링이 활성화되었을 때)
  • 시동/시동해제 소리 (아울러 시동되어 있는 동안 경고 음)
  • 교정 완료 상태 알림
  • TX-AUX 작동 삐삐 - 기체 추락시 위치를 찾는데 유용함
  • 비상대책 상태
  • 비행 모드 변경
  • Rate 프로필 변경 (TX-AUX 스위치를 통해서)

시동/시동해제를 콘트롤 스틱으로 수행할 경우, 스틱을 시동해제에 둘때 반복되는 톤이 들립니다. "lost-model locator"로서 사용될 수 있습니다.???

보드에 전원을 넣었을 때 즉시 세번 삐삐거리면 자이로스코프 교정이 성공했다는 뜻입니다. Cleanflight 는 매번 전원을 넣을 때마다 자동적으로 자이로를 교정합니다. 따라서 세번 삐삐 소리가 들릴 때까지 콥터를 땅위에 안정적으로 놓아두는 게 중요합니다. 교정하는 동안 콥터를 상당히 움직이면, 그때까지의 결과를 삭제하고, 콥터가 안정된 후 다시 교정을 실시합니다. 이때는 세번 삐삐소리가 나중에 들립니다. 콥터를 약간만 움직였을 경우 자이로 교정이 틀릴 수 있고 비행이 잘 되지 않을 수 있습니다. 이 경우 스틱 명령을 통해 수동으로 자이로를 교정해야 하거나, 전원을 껐다가 다시 켜야 합니다.

GPS가 고정되면 울리는 특별한 시동 톤이 있습니다. 또한 GPX가 고정된 후 들리는 "준비완료" 톤도 있습니다. TX-AUX 스위치를 통해 울리는 톤은 GPS가 고정되어 있을 경우, 위성의 숫자만큼 울리게 됩니다.

CLI 명령인 [play_sound]를 사용하면 부저 톤을 스험해보는데 유용합니다. 이 명령을 반복적으로 입력하면 여러가지 톤이 순차적으로 울리게 됩니다. 숫자인덱스를 변수로 입력하면(아래를 보세요) 관련 톤이 울립니다.

부저는 부저가 연결되면 기본적으로 활성화됩니다.

톤의 종류(Tone Sequences)

부저톤 순서 (사각파 생성)은 홀수번째가 부저가 켜진 상태로 얼마나 지속되는지, 짝수번째는 꺼진 상태로 얼마나 지속되는지를 나타냅니다. 이 지연시간의 단위는 10 milisecond 입니다. (즉 5이면 50 ms)

Sequences available in Cleanflight v1.9 and above are :

Cleanflight v1.9 이상의 버전에서 사용할 수 있는 톤 순서는 다음과 같습니다.

0    GYRO_CALIBRATED       20, 10, 20, 10, 20, 10   자이로가 교정됨
1    RX_LOST_LANDING       10, 10, 10, 10, 10, 40, 40, 10, 40, 10, 40, 40, 10, 10, 10, 10, 10, 70    SOS 모르크 코드
2    RX_LOST               50, 50       TX 꺼짐 혹은 신호 꺼짐(TX가 정상이 될때까지 반복됨)
3    DISARMING             15, 5, 15, 5     보드의 시동이 꺼짐
4    ARMING                30, 5, 5, 5      보드에 시동이 켜즘
5    ARMING_GPS_FIX        5, 5, 15, 5, 5, 5, 15, 30    시동이켜지고 GPX가 고정됨
6    BAT_CRIT_LOW          50, 2        배터리가 극히 낮음(반복)
7    BAT_LOW               25, 50       배터리가 낮아짐 (반복)
8    NULL                  multi beeps      GPS 상태(위성의 수)
9    RX_SET                10, 10       RX가 설정됨(aux 채널이 GPS가 활성화 되었을 때 위성의 숫자만큼 울리도록 설정되어 있을 때)
10   ACC_CALIBRATION       5, 5, 5, 5       ACC 비행중 교정 완료
11   ACC_CALIBRATION_FAIL  20, 15, 35, 5    ACC 비행중 교정 실패
12   READY_BEEP            4, 5, 4, 5, 8, 5, 15, 5, 8, 5, 4, 5, 4, 5    GPS 고정 및 콥터가 준비완료
13   NULL                  multi beeps      삐삐 소리 여러번 (확인, GPS 숫자 등)
14   DISARM_REPEAT         0, 100, 10       스틱이 시동해제 위치에 있음(중지(pause) 이후)
15   ARMED                 0, 245, 10, 5    보드가 시동이 걸림(중지 이후 ; 보드가 시동해제 또는 Throttle이 상승할 때까지 반복)

지원되는 버저의 유형(Types of buzzer supported)

버저는 보드에 있는 GPIO 출력핀을 활성화/비활성화 시키기만 하면 버저가 활성화/비활성화 됩니다. 즉, 버저는 반드시 전연이 연결됨으로써 톤을 생성할 수 있어야 한다는 뜻입니다.

아날로그 또는 PWM 신호가 필요한 버저는 작동하지 않으며, 끄르릭 거리는 잡음이나 아무런 소리도 나지 않습니다.

아래는 현재까지 동작이 확인된 버저의 예입니다.

연결(Connections)

Naze32

지원되는 부저를 직접 BUZZ 핀에 연결합니다. 극성을 확인하세요. 아울러 기체 외부에 비행콘트롤러를 설치한 경우, (예를 들어 벤치에) 5V를 공급하고, ESC에 접지를 연결해야 합니다. 아니면 부저가 작동하지 않습니다.

CC3D

CC3D에 부저가 지원되도록 하려면 입력이 PA15가 되도록 부저회로를 만들어야 합니다. CC3D Revision A 스키마틱에 따르면 PA15는 사용되지 않고 연결되지 않습니다. PA15에 연결하려면 주의깊게 납떔해야 합니다.

자세한 내용은 CC3D - buzzer circuit.pdf 를 보세요.

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Buzzer.md

이전글 : 디스플레이(Display)

다음글 : 초음파 센서(Sonar)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 9. 17:28

디스플레이(Display)

Cleanflight는 기체 및 cleanflight 상태에 한 정보를 알려주는 디스플레이를 지원합니다.

기체를 시동을 걸면, 디스플레이는 갱신되지 않아 비행은 영향을 받지 않습니다. 시동을 끄면 화면에 여러가지 페이지가 돌아가며 나타납니다.

현재 페이지에 나타나는 정보, 페이지의 종류, 페이지가 표시되는 시간 등을 변경할 방법은 없습니다. 이것을 핸드링할 코드를 작성해주시면 감사하겠습니다.

지원되는 하드웨어

현재 지원되는 하드웨어는 SSD1306 / UG-2864HSWEG01 뿐입니다.

설정(Configuration)

CLI에서 DISPLAY 기능을 활성화합니다.

[feature DISPLAY]

SSD1306 OLED displays

SSD1306 은 128x64 OLED 디스플레이로서, 태양광하에서도 잘 보이며, 작고, 전력을 조금 소모합니다. 이때문에 기체 용도로 이상적입니다.

현재 SSD1306 보드는 여러가지가 있는데, 모두 등일하지 않고 작동하려면 약간의 추가적인 수정이 필요합니다. 현명하게 선택하세요!~

디스플레이 링크 :

banggood.com 디스클레이가 현재 가장 싸며, I2C ACK 신호를 를 정확하게 보내줍니다.

Crius CO-16

이 디스플레이는 사용하지 않는게 좋지만, 수정하면 작동됩니다.

1단계

공급된 상태로는 I2C ASK 신호가 보내지지 않습니다. 제작자가 D1 과 D2를 브릿지 시키지 않았기 때문입니다. 이를 고치려면 스크린으로 들어갈 때 두개의 핀을 납땜으로 붙여야 합니다. 이렇게 하지 않으면 스크린에 아무것도 나오지 않습니다.

2단계

14번 핀을 메인보드로부터 분리시켜야 합니다. 그리고 10nF 또는 100nF 콘덴서를 30번 핀과 잘라낸 14번 핀 사이에 결합합니다.

3단계

100K 저항을 9번핀과 잘라낸 14번 핀사이에 연결합니다.

2단계와 3단계를 수행하지 않으면 디스플레이가 파워를 넣을 때만 작동하며, 어떤 때는 수많은 점들이나 꺠진 영상만 나오게 됩니다.

이 절차에 대한 자세한 사항은 여기를 읽어보세요. http://www.multiwii.com/forum/viewtopic.php?f=6&t=2705&start=10

연결(Connections)

+5v, 접지, I2C SDA, I2C SCL 을 비행콘트롤러로부터 디스플레이에 연결합니다.

Naze32 rev 5 보드에서는 SDA 와 SCL 패드가 보드 아래쪽에 있습니다.

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Display.md

이전글 : 띠형 LED(LED Strip)

다음글 : 부저(Buzzer)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 9. 16:29

띠형 LED (LED Strip)

Cleanflight는 주소를 지정할 수 있는 띠형 LED 를 지원합니다. 주소지정 띠형 LED는 띠에 있는 각각의 LED를 프로그램하여 각자 독특하고 독립적인 색이 나오도록 할 수 있습니다. 이는 띠에 있는 모든 LED 가 동일한 색이 나오는 일반 띠형 RGB 보다 훨씬 진보된 것입니다.

주소지정 띠형 LED는 비행콘트롤러로부터 나오는 정보를 표시하는데 사용할 수 있으며, 현재 지원되는 것은 다음과 같습니다.

  • 최대 32 개의 LED
  • 피치/롤 스티 위치를 보이는 표시자(Indicators)
  • 방향/자세 
  • 비행모드 별 독자적인 색깔 지정
  • 저전압 경고
  • AUX로 On/Off 스위치
  • GPS 상태
  • 수신강도(RSSI) 수준
  • 배터리 수준

32개 이상의 LED도 지원가능하며, 추가 개발만 필요합니다.

지원되는 하드웨어(Supported Hardware)

현재 32개의 WS2811/WS2812 만 지원됩니다. 더 길어도 관계는 없지만, 첫 32개만 사용합니다.

WS2812 LED는 800khz 신호와 정확한 타이밍이 필요하며, 따라서 전용 하드웨어 타이머가 있어야 합니다.

참고 : 모든  WS2812 IC가 동일한 타이밍을 사용하지 않습니다. 생산 batch에 따라 timing 이 달라질 수 있습니다.

사용자가 요청한다면, CLI를 통하여 필요한 타이밍을 지정할 수 있습니다. 

시험완료된 하드웨어

  • Adafruit NeoPixel Jewel 7 (기본적인 테스트) 
    • 모두 하얀색으로 했을 때 전력소모량 : 약 350 mA
    • mini 250 쿼드의 모터밑에 장착가능
  • Adafruit NeoPixel Stick (잘 작동함) 
    • 모두 하얀색으로 했을 때 전력소모량 : 약 350 mA

연결 (Connection)

WS2812 LED strips generally require a single data line, 5V and GND.

WS2812 띠형 LED는 일반적으로 하나의 데이터 선과 5V, GND 가 필요합니다.

WS2812 LED 를 완전히 밝게 하면 상당한 전류가 소모됩니다. 전류 소모량을 확인하고 수용가능한지 확인해보시는 게 좋습니다. 여러개의 BEC ESC를 사용하는 멀티로터에서는 FC가 사용하지 않는 BED를 사용하는 것이 좋습니다. 예를 들어 ESC1/BEC1 -> FC, ESC2/BEC2 -> LED. 반은 어떤 BEC에서 전원을 뽑고, 나머지 반은 다른 BEC에서 뽑는 것도 가능합니다. 다만, GROUND는 모든 BEC 출력와 LEC가 동일한지 확인하세요.

TargetPinLED StripSignal
Naze/OlimexinoRC5Data InPA6
CC3DRCO5Data InPB4
ChebuzzF3/F3DiscoveryPB8Data InPB8
SparkyPWM5Data InPA6

Naze/Olimexino의 경우 SoftSerial도 RC5 를 사용합니다. 즉, SortSerial과 LED를 동시에 사용할 수 없습니다. 또한 Naze, Chebuzz, STM23F3Discovery targets 에서는 RC5가 병렬형 PWM RC 입력에도 사용되므로, 띠형 LED를 병렬형 PWM 과 동시에 사용할 수 없습니다.

LED가 깜빡거리거나 색이 다르다면, VIN을 4.7v 이하로 내리세요. VIN의 내장 diode를 띠형 LED에 사용하면 됩니다. 이 문제는 데이터 신호와 전원 신호간의 전압 차이로 인한 것입니다. WS2811 LED는 데이터 신호(Din)가 0.3 * Vin (Max) 와 0.7 * VIN(Min) 사이에 있어야 합니다. ??? CPU에 있는 LED 핀은 항상 0v 에서 약 3.3v 사이이므로 Vin 은 4.7v (3.3/0.7 = 4.71v)이어야 합니다. LED에 따라 관용도가 달라집니다.

데이터시트는 여기를 보세요. : http://www.adafruit.com/datasheets/WS2812.pdf

설정(Configuration)

(이하 생략합니다)

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/LedStrip.md

이전글 : 텔레메트리 (Telemetry)

다음글 : 디스플레이(Display)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 9. 14:26

텔레메트리(Telemetry)

텔레메트리는 기체를 날리는 동안 기체에서 발생하는 일들을 알 수 있습니다. 아울러 배터리 전압이나 GPS 위치 등을 송신기에서 받아볼 수 있습니다.

텔레메트리는 항상 켜둘 수도 있고, 시동을 걸었을 때만 활성화 시킬 수도 있습니다. 텔레메트리용 시리얼 보트는 다를 기능과 공유할 수 있으며, 그 포트에 시동되었을 때만 활성화됩니다.??

텔레메트리는 'TELEMETRY` 기능으로 활성화 시킵니다.

       [feature TELEMETRY]

현재 FrSky, Graupner HoTT V4, SmartPort (S.Port), LightTelemetry (LTM) 등 여러가지 텔레메트리 제품이 현재 지원됩니다. 

모든 텔레메트리 시스템은 시리얼 포트를 사용하며, 시리얼포트를 텔레메트리용으로 설정해야 합니다.

FrSky telemetry

FrSky 텔레메트리는 오직 전송만 하고, 시리얼포트의 TX 핀을 FrSKY 텔레메트리 수신기의 RX 핀에 연결면 하면 됩니다.

FrSky 텔레메트리 신호는 역전되어 있습니다. cleanflight 보드를 FrSky 수신기에 연결하려면 다음과 같은 몇가지 선택이 있습니다.

  1. 하드웨어 인버터 - 일부 비행콘트롤러에는 내장되어 있음
  2. 소프트웨어 시리얼을 사용하고 [frsky_inversion]을 활성화 함
  3. 소프트웨어로 설정가능한 하드웨어 역전이 있는 비행콘트롤러(예: STM32F30x) 를 사용함

1의 경우 UART 또는 소프트웨어 시리얼보트에 인버터를 결합하면 됩니다.

2나 3의 경우 다음과 같은 CLI 명령을 사용합니다.

[set telemetry_inversion = ON]

사용가능한 센서

다음과 같은 센서들을 송신할 수 있습니다.

  • Vspd : 수직속도. 단위는 cm/s. 
  • Hdg : 방향. 북쪽은 0°, 남쪽은 180°
  • AccX,Y,Z : 가속도계 값
  • Tmp1 : baro temp(있을 경우). 아니면 gyro
  • RPM : 시동걸렸을 때는 throttle 값, 아니면 배터리 용량(Taranis 의 경우 Blade 수를 12로 설정해야 함)
  • Cels : 평균 셀 값. vbat을 셀 수로 나눈 값임
  • VFAS : 실제 vbat 값 (아래의 VFAS 정밀도 부분을 볼 것)
  • Curr : 실제 전류 소모량 (단위 ㅁ)
  • Fuel : capacity를 설정하였을 경우 남은 배터리 퍼센트. 아니면 mAh 방출량. 
  • GPS : GPS 좌표 
  • Alt : 기압계 기반의 고도. 초기값은 0
  • Date : 전원을 넣은 후의 시간 
  • GSpd : 현재 속도. GPS를 기반으로 측정함
  • GAlt : GPS 고도. 해수면이 0
  • Tmp2 : 위성의 수. GPS 신호의 품질을 표현하기 위해 매초 100이상의 숫자가 들어옴

VFAS를 위한 정밀도 설정

Cleanflight는 VFAS(FrSky Ampere Sensor Voltage)를 다음 두가지 방법으로 보낼 수 있습니다.

[set frsky_vfas_precision = 0]

이는 기본값으로 VFAS 해상도 0.2 볼트를 지원하며, 모든 FrSky 하드웨어가 지원합니다.

[set frsky_vfas_precision = 1]

이는 새로운 설정으로 VFAS 해상도 0.1 볼트를 지원하며, OpenTX radio(custon ID 0x39사용함)만 지원합니다.

HoTT 텔레메트리

Electric Air Module 과 GPS 모듈만 나열됩니다.

송신기와 수신기에 최신의 Graupner 펌웨어를 사용하세요.

예전의 HoTT 송신기는 EAM과 GPS 모듈이 송신기의 텔레메트리 메뉴에서 활성화되어야 했습니다. (예 : MX-20)

시리얼포트는 두개의 선을 사용하지만, HoTT는 한 선만 사용하므로, 신호가 뒤섞이지 않도록 약간의 조작이 필요합니다. 시리얼포트의 TX와 RX 핀을 다이오드로 연결하고 HoTT 수신기의 T 포트에 연결해야합니다.

아래와 같이 연결하세요.

  • HoTT TX/RX T -> Serial RX (직접 연결) 
  • HoTT TX/RX T -> Diode -( |)- > Serial TX (다이오드를 통해 연결)

다이오드는 데이터 신호가 바른 방향으로 흐르도록 배열해야 합니다.

-( |)- == Diode, | indicates cathode marker.

1N4148 다이오드는 테스트가 완료되었으며, GR-24.와 작동됩니다.

As noticed by Skrebber the GR-12 (and probably GR-16/24, too) are based on a PIC 24FJ64GA-002, which has 5V tolerant digital pins.
Note: The SoftSerial ports may not be 5V tolerant on your board. Verify if you require a 5v/3.3v level shifters.

참고로 SoftSerial 포트는 5V 를 견디지 못할 수 있습니다. 5v/3.3v 변환기가 필요한지 확인해 보세요.

LightTelemetry(LTM)

(이하는 생략합니다)

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Telemetry.md

이전글 : 수신신호강도(RSSI)

다음글 : 띠형 LED (LED strip)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 9. 13:52

수신신호강도(RSSI)

수신신호강도(RSSI)는 신호강도를 측정하는 것으로, 기체가 범위를 벗어났는지 혹은 주파수 간섭을 받는지 등을 알 수 있는 편리한 방법입니다.

일부 수신기는 RSSI 출력이 있습니다. 다음과 같이 3가지 유형이 지원됩니다.

  • PPM 채널을 통한 RSSI 
  • 병렬식(Parallel) PWM 채널을 통한 RSSI
  • RSSI 출력이 있는 PPM RC의 ADC를 통한 RSSI - RSSI ADC라고도 함

PPM을 통한 RSSI

Configure your receiver to output RSSI on a spare channel, then select the channel used via the CLI.

수신기에서 RSSI를 별도의 채널에 출력하도록 설정하고, CLI를 통해 사용된 채널을 선택합니다.

채널 9를 사용한다면 다음과 같이 설정합니다.

   [set rssi_channel = 9]

참고 EZZUHF 와 같은 일부 시스템의 경우 RSSI를 역전(invert)시킵니다. ( 0 = Full signal / 100 = Lost signal).  이 문제를 해결하려면 다음 명령을 사용하여 채널 입력을 역전시켜야 합니다. 

   [ set rssi_ppm_invert = ON]

기본값은 "OFF"입니다. ( 100 = Full signal / 0 = Lost signal).

병렬 PWM을 통한 RSSI

RSSI 신호를 아무 PWM 입력 채널에 연결시키고, RSSI 채널을 PPM을 통한 RSSI와 동일한 방법으로 설정합니다.

RSSI ADC

RSSI 채널을 RC2/CH2 입력에 연결합니다. 신호는 반드시 0v 와 3.3v 사이어야 합니다. 필요하다면 inline 저항을 사용하여 전압을 떨어뜨리세요. inline smoothing 콘덴서 도 도움이 될 수 있습니다. 간단한 PPM->RSSI conditioner는 쉽게 만들 수 있습니다. 자세한 내용은 PPM-RSSI conditioning.pdf 를 참고하세요.

CLI 명령은 다음과 같습니다 :

  • RSSI_ADC 기능을 활성화 시킵니다. : [feature RSSI_ADC]
  • RSSI_SCALE 변수(1-255)를 사용하여, RSSI 수준을 사용중인 설정에 따라 조정합니다. ADC 원시입력값은 이 변의의 값으로 나눠지게 됩니다.

RSSI_SCALE 설정 명령 :

  • [rssi_scale = 100] 으로 설정합니다. 표시된 퍼센트는 ADC 원시값이 됩니다.
  • RX 를 겹니다(보드와 가깝게). RSSI값이 약간 변합니다.
  • rssi_scale 을 방금전 측정한 최대 RSSI 값으로 갱신합니다.

FrSky D4R-II 와 X8R 가 지원됩니다.

RX_PARALLEL_PWM 가 활성화된 상태에서는 사용할 수 없습니다.

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Rssi.md

이전글 : GPS

다음글 : 텔레메트리(Telemetry)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 9. 11:28

GPS

Cleanflight에서 GPS 기능은 실험중입니다. 무엇인가 발견한다면 개발자에게 알려주세요.

GPS는 윗쪽에, 다른 방해요인으로부터 멀리 떨어뜨려 설치하면 좋습니다.

전자나침판 센서는 전자파간섭으로부터 멀리 떨어뜨려야 합니다. 즉, 전선, 모터, ESC등으로 부터 멀리 띄우세요.

NMEA text 와 UBLOX binary 등 두가지 프로토콜을 지원합니다.

설정(Configuration)

CLI로 활성화시키는 방법은 다음과 같습니다.

  1. 시리얼포트를 GPS 용으로 설정합니다.
  2. GPS baud rate 을 설정합니다.
  3. [feature GPS] 을 활성화합니다.
  4. [gps_provider]를 설정합니다.
  5. GPS를 GPS용 시리얼포트에 연결합니다.
  6. 저장하고 리부팅합니다.

GPS 제공자

[gps_provider]를 적절히 설정합니다. 예 : gps_provider=UBLOX

Value
NMEA
UBLOX

GPS 자동 설정 (GPS auto configuration)

When using UBLOX it is a good idea to use GPS auto configuration so your FC gets the GPS messages it needs.

UBLOX를 사용한다면, GPS 자동 설정을 사용하는 것이 좋습니다. FC에서 필요한 GPS 메시지를 가져옵니다.

[set gps_auto_config=ON] 을 하면 GPS 자동설정이 활성화됩니다.

GPS 자동설정을 사용한다면 올바른 주파수로 올바른 메시지를 내보네는지 확인하세요. 자세한 사항은 아래에 있는 UBlox 설정을 보세요.

SBAS

UBLOX GPS를 사용할 경우, [gpx_sbas_mode] 를 사용하여 SBAS 모드를 설정할 수 있습니다.

기본값은 자동(AUTO)입니다.

ValueRegion
AUTOGlobal
EGNOSEurope
WAASNorth America
MSASAsia
GAGANIndia

지역별 설정을 사용하면 AUTO를 사용하는 것보다 GPS가 더 빨리 고정됩니다.

이 설정은 [gps_auto_config=ON] 일 경우에만 적용됩니다.

GPS 수신기 설정(GPS Receiver Configuration)

UBlox GPS 기기는 FC를 통해서 설정할 수도, 직접 설정도 할 수 있습니다.

UBlox GPS 직접 설정(Ublox GPS mannual configuration)

UBlox U-Center를 사용하여 GPS와 컴퓨터를 연결합니다. 별도의 USART->USB 어댑터가 없을 경우, CLI [gpspassthrough] 명령을 사용할 수도 있습니다.

참고로 SPRacingF3와 같이 많은 보드가 USB에서 GPS모듈로 +5V 를 제공해주지 않습니다. [gpspassthrough]를 사용하면, 보드에서 허용할 경우 콘트롤러에 BEC를 연결할 필요가 있고, 아니면 별도의 UART 어댑터를 사용하세요. GPS 포트가 USB에서 전원을 끌어쓰는지 알고 싶다면 보드에 관한 문서를 확인하세요.

(이하 생략합니다)

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Gps.md

이전글 : 배터리 모니터링(Battery Monitoring)

다음글 : 수신신호강도(RSSI)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 9. 09:27

배터리 체크(Battery Monitoring)

Cleanflight 에는 배터리 모니터링 기능이 있습니다. 주 배터리의 전압을 시스템에서 측정하여, 배터리 저전압 경고 부저와, 내장된 상태 LED 표시(status LED flashing) 및 LED 띠 패턴(LED strip pattern) 등이 작동되도록 할 수도 있습니다.

저전압 경고는 다음과 같은 곳에 도움이 됩니다.

  • 기체를 안전하게 착륙시킬 시간이 있는지 확인
  • 적정량 이하로 방전시키면 안되는 LiPo/LiFe 배터리의 생명과 안전을 유지하는데 도움

최소/최대 셀 전압을 설정할 수 있습니다. 이 전압이 배터리를 처음 연결할 때 배터리의 셀의 수를 자동 감지하는데 사용됩니다.

셀별 모니터링은 지원되지 않습니다. 하나의 ADC를 사용하여 배터리 전압을 읽습니다.

지원되는 타겟(Supported Target)

모든 타겟이 배터리 전압 모니터링을 지원합니다. ???

연결(Connections)

배터리를 사용할 때는 반드시 양극/음극을 확인하세요.!!

예상 전압을 먼저 측정하고, 비행콘트롤러에 연결합니다. 잘못된 전압 혹은 극성을 반대로 비행콘트롤러에 연결하면 비행콘트롤러가 망가지기 쉽습니다. 사용하시는 비행콘트롤러에 특정 배터리 전압을 측정하는 분압기(voltage divider)가 있는지 확인하세요. ???

Naze32

Naze32에는 분압기가 내장되어 있으므로, 배터리를 VBAT 커넥터에 연결하시면 됩니다.

주의 : 주 배터리로부터 VBAT 커넥터에 연결할 때, 먼저 프레임/전원분배판(PDB)로부터 주 배터리를 분리하세요. 배터리를 다시 연결할 때, 전선을 주의깊게 확인하세요. 잘못 연결하면 그 즉시 완전히 비행콘트롤러와 연결된 주변기기(ESC, GPS, 수신기 등)이 망가집니다.

CC3D

CC3D에는 분압기가 없습니다. 전압 모니터링을 하려면 주 배터리가 완전 충전되었을 때 최고 출력이 3.3 v가 나오도록 분압기를 제작해야 합니다. 분압기 출력은 S5_IN/PA0/RC5에 연결하세요.

참고 :

  • S5_IN/PA0/RC5 는 8 핀 커넥터늬 7번핀, 즉 끝에서 두번째 핀으로, GND/+5/PPM 입력으로 부터 반대쪽입니다.
  • CC3D에 배터리 모니터링을 사용하면, PWM 입력에서 RC5는 사용할 수 없습니다.

Sparky

Sparky 보드 문서를 확인하세요.

설정(Configuration)

VBAT 기능을 활성화시킵니다.

다음과 같은 CLI 설정을 사용하여 최소/최대 셀 전압을 설정합니다.:

  • vbat_scale - 실제 측정되는 배터리 전압과 보고도는 값을 일치시키도록 이 값을 조정합니다.
  • vbat_max_cell_voltage - 셀당 최대 전압. 배터리 전압을 자동감지하는데 사용됨. 0.1V 단위임 즉, 43=4.3V
  • vbat_warning_cell_voltage - 셀당 경고 전압: 배터리 경고를 촉발시키는 값. 0.1V 단위임 (즉 34 = 3.4V)
  • vbat_min_cell_voltage - 셀당 최소 전압. 배터리 경고를 촉발시키는 값.  0.1V 단위임 (즉 33 = 3.3V)

예를 들어, 다음과 같이 설정

set vbat_scale = 110
set vbat_max_cell_voltage = 43
set vbat_warning_cell_voltage = 34
set vbat_min_cell_voltage = 33

전류 모니터링(Current Monitoring)

전류모니터링을 위해서는 전류계를 적절한 전류계 ADC 입력(사용하는 보드의 문서를 보세요)에 연결해야 합니다.

활성화되면, 다음 값들이 계산되어 텔레메트리와 OLED 디스플레이에 사용됩니다.

  • Amps 
  • mAh used 
  • Capacity remaining

설정(Configuration)

다음 CLI 설정을 사용하여 전류 모니터링을 활성화시킵니다.

    feature CURRENT_METER

current_meter_type 설정으로 어떤 유형인지 설정합니다.:

ValueSensor Type
NONENone
ADCADC/hardware sensor
VIRTUALVirtual sensor

battery_capacity 로 용량을 설정합니다. (단위 : mAh)

OSD를 사용할 경우, OSD는 multiwii 전력계 출력값을 사용하므로, multiwii_current_meter_output을 ON으로 설정합니다. (이렇게 하면 MSP로 보내지는 전력값을 10으로 곱하고, 음수는 잘라냅니다.)

ADC 센서

전력계는 ADC 입력에서 읽히는 값이 실제 전력량과 일치하도록 설정해야 할 필요가 있습니다. 전압계가 실제의 전압과 일치하도록 조종하는 것처럼, 전류센서를 조정하려면 전류계(ammeter)가 필요합니다.

다음의 설정을 사용하여 설정을 조정합니다.

   current_meter_scale current_meter_offset

ADC 전력센서를 교정할때에는 multiwii_current_meter_output을 OFF로 설정하는 것을 추천합니다.

가상센서(Virtual Sensor)

(이하 생략합니다)

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Battery.md

이전글 : 비상대책(Failsafe)

다음글 : GPS

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 8. 17:58

비상대책(Failsafe)

두가지 종류의 비상대책이 있습니다.

  1. 수신기 기반 비상대책
  2. 비행 콘트롤러 기반 비상대책

수신기 기반의 비상대책은 수신기가 신호가 끊겼다는 것을 감지할 경우, 송신기와 수신기로부터 채널에 원하는 신호를 넣도록 설정하여, 비상대책 모드로 들어가도록 하는 것입니다. Throttle 과 다른 조종을 설정하여 잘 제어된 상태로 기체를 하강시키도록 하자는 것입니다. 이 방법은 수신기의 문서를 확인하시기 바랍니다.

비행콘트롤러 기반의 비상대책은 비행콘트롤러가 신호가 끊겼는지 혹은 수신기가 비상대책 모드로 들어갔는지 계속 감시하다가, 감지되면 비상대책 1단계로 들어갑니다. 비행콘트롤러가 모든 콘트롤에 대해 비상용 설정을 사용하기 시작한다는 아이디어 입니다. 비상용 설정은 CLI 의 rxfail (rx 문서의 rxfail 부분을 참고하세요) 또는 Cleanflight 설정프로그램 GUI를 사용하여 설정합니다.

두가지 유형을 동시에 사용할 수 있으며 그렇게 하는 게 바람직 할 수 있습니다. 비행콘트롤러 비상대책은 수신기 신호선이 느슨해졌거나, 망가졌거나, 수신기 자체로는 감지할 수 없는 수신기 고장 등의 경우도 도움이 될 수 있습니다.

또 다른 방법으로 송신기 스위치에 비상대책 모드를 가동시키는 기능을 설정할 수도 있습니다. 야외에서 비상대책 체계가 작동하는지 시험할 때도 유용하고, 방향감을 상실했을 때 PANIC 스위치로도 유용합니다.

비행콘트롤러 비상대책 체계(Flight controller failsafe system)

이 시스템은 두가지 단계가 있습니다.

비행채널의 pulse length가 잘못되어 수신기가 비상대책 모드를 신고할 때, 혹은 수신기에서 아무런 신호가 없을 때 1단계(Stage 1)로 들어갑니다.

참고 : 1단계에 들어가기 앞서, 펄스가 잘못된 각각의 AUX 채널에 비상용 설정도 적용됩니다.

기체가 시동이 걸려있고, 1단계가 설정된 보호시간(falisafe_delay)보다 더 길어지면 2단계(Stage 2)로 들어갑니다. 선택된 2단계 절차(failsafe_procedure)가 덮어쓰지 않는다면, 모든 채널은 적용된 비상용 설정으로 유지됩니다.

2단계는 비행콘트롤러가 부팅된 뒤 5초까지는 작동되지 않습니다. TX/RX 장비가 바인딩하는데 시간이 걸리는 경우 등으로 원치않게 발동되는 것을 막기 위함입니다.

비상대책 모드를 제어하도록 송신기를 설정했을 경우 스위치가 ON으로 켜지면 (falisafe_kill_switch 는 OFF), 2단계가 직접 발동됩니다.

2단계는 다음과 같은 경우 중단됩니다.

  • 잃어버린 RC 신호가 회복되었을 경우
  • 송신기 비상대책 스위치가 ON 위치로 갔다가 OFF로 설정된 경우 (failsafe_kill_switch 는 OFF)

아울러 다음 사항들을 참고하세요.

  • 2단계 절차가 끝나면 비행콘트롤러는 시동을 끕니다. 이후 수신기로부터 신호가 30초간 복구되고, 시동 스위치가 OFF 위치(시동 스위치를 사용할 경우)로 될 때까지 재시동은 불가능합니다.
  • failsafe_kill_switch가 ON으로 설정되어 있고, 비생대책용으로 지정된 송신기 스위치가 ON으로 되면 기체는 즉시 시동이 꺼집니다. 수신기로부터 신호가 적어도 3초동안 복구되고, 시동스위치가 OFF 위치에 있는 경우 재시동이 가능합니다. 'failsafe_throttle'을 1000으로 두고 'failsafe_off_delay'를 0으로 설정하면 비슷한 효과를 거둘 수 있습니다. 하지만, 이는 별로 좋은 방법이 아닙니다. 반응속도가 느리고 재시동이 Lock 되기 때문입니다.
  • 2단계 개입이 시작되기 전, 마지막 failsafe_throttle_low_delay 초 동안 Throttle 위치가 min_throttle 수준 밑에 있는지 체크합니다. 만약 그렇다면 기체는 땅위에 있다고 생각하고 시동만 끕니다. 이 경우 전원을 껐다 켜지 않아도 재시동이 가능합니다.

안전에 관한 몇가지 참고사항

  • 현재의 throttle 위치와 관계없이 비상대책이 발동됩니다. 따라서 비상대책 가동이 중단될 때(RC 신호가 복구되고 비상대책 스위치가 OFF로 설정) 현재의 스틱 위치가 그대로 기체에 전해집니다.!!
  • 기체가 이미 땅위에서 모터가 꺼진채 있을 수 있으며, 모터와 프롭이 다시 회전할 수 있습니다. 소프트웨어는 현재 기체가 땅에 있는지 감지하지 못합니다. MOTOR+STOP 기능을 사용할 때 주의하세요. MOTOR_STOP 기능이 ON인 상태로 시동될 경우 모터가 경고없이 회전할 수 있고 비상대책이 가동될 수 있습니다!

설정(Configuration)

비행콘트롤러 비상대책을 설정할 경우, 다음의 절차를 사용하세요.

  1. 수신기를 다음중 하나로 설정하세요.
    • 신호를 잃었을 때, 채널로 no signal/pulse를 보내세요.
    • 채널로 올바르지 않은 신호를 보내세요. (예를 들어 rx_min_usec보다 낮은 값으로 보내기)

아울러

    • FC에 의해서 등록된 스위치 또는 스틱에 의해 시동중지를 지시하는 채널데이터를 보내지 마세요. 이는 스위치를 사용해 시동을 거는 경우 특히 중요합니다.

이렇게 하는 방법은 수신기의 문서를 확인하시기 바랍니다.

  • 송신기의 스위치중 하나를 failsafe 모드를 가동시키도록 설정하기
  1. failsafe_off_delay를 비행고도에 근거하여 적당한 값으로 설정
  2. failsafe_throttle을 기체가 약 초당 1미터씩 하강하도록 설정(기본값은 1000으로 throttle off)

이상은 비행콘트롤러 비상대책을 설정하는 기본적인 절차입니다. 아래에 있는 비상대책 설정을 보시면 추가적으로 변경할 사항을 알 수 있습니다.

비상대책 설정(Failsafe Settigs)

비상대책 지연(Failsafe delay)는 0.1초 단계로 설정됩니다.

1 step = 0.1초

1 초 = 10 step

failsafe_delay

신호가 끊긴 뒤 비상대책 가동까지의 보호시간. 비상대책을 발동하기 전에 제대로된 신호를 다시 받을 수 있는지 비행콘트롤러가 기다리며 살펴보는 시간입니다.

failsafe_off_delay

비상대책이 가동된 후 실제로 모터가 꺼질 때까지의 지연시간. "failsafe_throttle"이 활성화되는 시간입니다. 기체가 높은 궤도로 난다면, 안전하게 하강할 때까지 더 많은 시간이 필요할 수 있습니다.

failsafe_throttle

착륙에 사용되는 Throttle 수준. 기체가 약 1 m/sec로 내려오도록 값을 설정하세요. 기본값은 1000으로, throttle off와 동등합니다.

failsafe_kill_switch

RC 스위치로 비상대책 가동할지 설정 : 무선 링크가 끊겼을 때와 동일한 행태(OFF 로 설정) 또는 즉시 시동중지 (ON으로 설정)중 선택할 수 있습니다. 자세한 내용은 위를 참고하세요.

failsafe_throttle_low_delay

완전한 비생대첵 절차 대신 시동을 끄기 위해 Throttle 레벨을 min_throttle 밑으로 내리는 시간

표준 RX usec 값을 사용합니다. RX 문서를 참고하세요.

failsafe_procedure

  • 낙하(Drop): 그냥 모터를 끄고 시동중시시킴(기체가 떨어짐)
  • 착륙(Land): 자동수평(auto-level)모드를 켜고 비행스틱을 가운데로 유지하고, throttle을 지정한 값(failsafe_throttle)으로 지정한 시간(failsafe_off_delay)동안 유지합니다. 이렇게 하면 기체가 안전하게 착륙할 수 있습니다.

rx_min_usec

유효한 최소 채널 값. 예: PWM/PPM 펄스시간

rx_max_usec

유효한 최대 채널 값. 예: PWM/PPM 펄스시간

rx_min_usec 과 rx_max_usec 설정은 송신기가 아무런 데이타도 보내지 않을 때를 감지하여 비상대책 모드로 들어갈 때나 수신기가 신호를 잃었을 때를 감지하는데 도움이 됩니다.

Graupner GR-24 를 채널 1-4에 비상대책으로 PWM 출력하도록 설정하였을 경우, 수신기 설정에서 OFF로 설정합니다. 그려면 이 설정이(기본값일 경우) 비상대책 모드가 가동되도록 합니다.

시험(Testing)

비행전 비상대책 체계를 시험하는 방법 - 프롭은 제거할 것

  1. 시동
  2. 송신기 전원을 끄거나, 수신기의 선을 뽑음
  3. 지정한 시간동안 지정한 throttle 설정으로 모터가 회전하는 지 관찰
  4. 지정한 시간 후 모터가 꺼지는 지 관찰
  5. 다시 송신기를 켜거나 수신기를 연결했을 때 모터가 꺼진 후에는 재 시동이 불가능한지 확인
  6. FC의 전원을 껐다 켬
  7. 시동
  8. 송신기 전원을 끄거나, 수신기의 선을 뽑음
  9. 지정한 시간동안 지정한 throttle 설정으로 모터가 회전하는 지 관찰
  10. 송신기를 켜거나 수신기를 연결
  11. 스위치 위치에 관계없이 기체가 시동이 꺼지는지 확인(아니라면 신호가 연결되었을 때 하늘로 날라가버림)
  12. 정상적인 비행 행태로 돌아오는지 확인
  13. 시동 끔

비상대책 체계 필드 테스트

  1. 먼저 비행전 테스트를 시행할 것! 
  2. 바람 없는날 빌딩에서 멀리 떨어진 사람들이 없는 곳 또는 안전 보장이 되는 실내 테스트장 (예 : 실내 그물망)에서 시행
  3. 시동
  4. 부드러운 것(긴 풀,  양치식물,  풀밭, 발포고무 등)위에서 호버링
  5. 기체를 내리면서 throttle의 위치를 확인하고 송신 채널 모니터를 통해 throttle 값을 기록. 이상적으로는 1500에서 호버링. 따라서 이 값이 1500 이하이어야 함.
  6. 정지. 시동끔
  7. failsafe_throttle 을 기록한 값으로 설정
  8. 시동. 부드러운 것 위에서 호버링
  9. 송신기를 끔.(!) 
  10. 기체가 하강하고 정해진 시간동안 모터가 계속 회전 하는지 관찰
  11. 지정한 시간 이후 FC가 시동을 끄는지 관찰
  12. 배터리 제거

기체가 너무 빨리 내려오면 failsafe_throttle 값을 증가시키세요.

Ensure that the duration is long enough for your craft to land at the altitudes you normally fly at. 

기체를 일반적으로 날리는 고도에서 안전하게 착륙할 수 있도록 failsafe_off_delay 값을 설정하세요.

위의 절차로 테스트해보기 전에 송신기를 끄는 대신, 비상대책을 가동시키는 스위치를 사용하여 테스트 하면 좋습니다.

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Failsafe.md

이전글 : Spectrum bind support

다음글 : 배터리 모니터링(Battery Monitoring)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 8. 17:37

Spektrum bind support


====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Spektrum%20bind.md

이전글 : 수신기(Receiver)

다음글 : 비상대책(Failsafe)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 7. 23:20

수신기(Receivers, Rx)

수신기(Receiver)는 송신기(Transmitter)가 보내온 무선 조정 신호를 받아, 비행콘트롤러가 이해할 수 있는 신호로 변환합니다.

수신기는 3가지 기본 유형이 있습니다.

  1. 병렬식 PWM 수신기
  2. PPM 수신기
  3. 시리얼 수신기

2016년 현재 시리얼 혹은 PPM 방식의 수신기를 추천합니다. 병렬식 PWM 수신기(1채널당 1선)는 피하세요. 이는 병렬식 PWM 기반의 수신기가 IO 핀을 많이 사용하기 때문입니다. 일부 새로운 FC의 경우, 병렬식 PWM 을 지원하지 않습니다.

병렬식 PWM  수신기(Parallel PWM Receiver)

8개의 채널을 지원하며, 하나의 핀당 하나의 채널이 할당됩니다. 일부 플랫폼에서는 병렬식 입력을 받으면 시리얼 포트나 SoftSerial 기능이 비활성화 되어 텔레메트리나 GPS 기능을 사용할 수 없습니다.

PPM 수신기

PPM은 PPM SUM 혹은 CPPM 이라고도 합니다.

하나의 입력핀에 12개의 채널까지 사용가능. 시리얼 통신을 사용하는 방법보다 정확하지는 않지만, 다양하게 사용됩니다.

다음 수신기들이 사용가능합니다.

시리얼 수신기(Serial Receiver)

시리얼을 통해 8채널까지 지원됩니다.

다음의 수신기가 사용가능합니다.

S.BUS

시리얼을 통해 현재 16채널을 지원합니다. 다음은 송신기를 설정하는 방법입니다.

  • 아마도 수신기와 비행 콘트롤러 사이에 인버터(inverter)가 필요할 수 있습니다. 하지만, 일부 비행콘트롤러는 이미 내장(예를 들어 CC3D 메인 포트의 경우)되어 있을 수 있습니다.
  • 일부 OpenLRS 수신기는 역전되지 않은(non-inverted) SBUS 신호를 내보냅니다. 이 경우, CLI 명령어중 sbus_inversion = OFF를 사용하면 역전을 취소할 수 있습니다. (F3 기반의 비행콘트롤러의 경우)
  • Softserial 포트는 SBUS와 함께 사용할 수 없습니다. SBUS의 bitrate(1Mbps)가 너무 높기 때문입니다. 어느포트를 사용할 수 있는지는 사용하시는 보드를 다룬 문서를 참고하세요.
  • You will need to configure the channel mapping in the GUI (Receiver tab) or CLI (map command). Note that channels above 8 are mapped "straight", with no remapping.
  • GUI(수신기 탭) 또는 CLI (map 명령)를 통해 채널매핑을 설정해야할 수도 잇습니다. 참고로 9번 이상의 채널은 remapping이 불가능합니다.

다음의 수신기가 사용가능합니다.

OpenTX S.BUS 설정

OpenTX 세트 송신기 모듈을 D16 모드에 사용하였다면, 모든 16채널을 수신하도록 바인딩하기 전에 송신기에서 CH1-16으로 선택하세요.

일부 Taranis X9D 및 수신기와 함께 판매되는 OpenTX 2.09는 버그 - issue:1701 - 가 있습니다. 이 버그로 인해 16채널을 사용할 수 없습니다. 최신의 OpenTX 버전으로 업그레이드하면 모든 16채널을 수신할 수 있는데, 수정하지 않을 경우 CH1-16/D16 설정을 어떻게 바꿔도 8채널만 사용할 수 있습니다.

기타 다음과 같은 송수신기 모드는 생략합니다.

  • SRXL (formerly XBUS)
  • XBUS MODE B RJ01
  • SUMD
  • SUMH
  • IBUS

MultiWii serial protocol (MSP)

MSP 명령을 RC 입력으로 사용할 수 있습니다. MSP와 호환성을 유지하기 위해 8 채널만 지원합니다.

설정(Configuration)

수신기 모드를 제어하는 3개의 기능이 있습니다 :

RX_PPM
RX_SERIAL
RX_PARALLEL_PWM
RX_MSP

한번에 단 한가지 수신기 기능만 활성화시킬 수 있습니다.

RX signal-loss detection

Cleanflight에는 신호망실 감지 기능이 있으며 항상 켜져 있습니다. 신호망실감지는 안전과 비상대책 이유로 사용됩니다.

rx_min_usec 과 rx_max_usec 설정을 사용하면, 수신기가 아무런 데이타도 보내지 않거나, 비상대책 모드로 들어가거나, 수신기가 신호를 잃어버릴때를 감지할 수 있습니다.

기본적으로 신호망실이 감지되면 FC는 pitch/roll/yaw를 mid_rc에서 설정한 값으로 설정합니다. Throttle은 rx_min_usec에서 설정한 값, 혹은 3D 기능을 사용할 경우에는 mid_rc로 설정한 값으로 설정됩니다.

신호망실이 감지되는 경우는 다음과 같습니다.

  • (무선 신호문제, 수신기 설정, 케이블 문제 등)으로 인해 rx_data가 받아지지 않는 경우
  • Serial RX를 사용하고 수신기가 비상대책(failsafe)조건을 나타낸경우
  • 첫 4개의 채널 중 하나라도 rx_min_usec, rx_max_usec 으로 지정한 범위에 들어오지 않는 경우

==== 

(이하는 생략)

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Rx.md

이전글 : 시리얼(Serial)

다음글 : Spektrum bind support

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 7. 17:56

시리얼(Serial)

Cleanflight 는 시리얼포트의 유연함을 향상시켰지만, 이로 인해 설정은 약간 복잡해졌습니다.

Cleanflight는 function(MSP, GPS, Serial RX 등)과 포트(VCP, UARTx, SoftSerial x) 라는 개념이 있습니다. 모든 포트에 모든 기능이 사용되는 것은 아닙니다. 하드웨어 핀 매핑, 기능의 충돌, 하드웨어 및 소프트웨어 제한 등 때문입니다.

시리얼 포트 유형(Serial port types)

  • USB 가상 콤 포트(VCP : Virtual Com Port) - USB 포트의 USB 핀이 직접 프로세서에 연결되어, 전용 USB에서 UART 어댑터가 필요 없습니다. VCP는 물리적 UART 포트를 '사용'하지 않습니다.??
  • UART - 전송 및 수신 핀의 전용 하드웨어 쌍으로, 신호의 검출 및 생성을 하드웨어에서 처리합니다. ??
  • SoftSerial - 전송 및 수신 핀의 전용 하드웨어 쌍으로, 신호의 검출 및 생성을 소프트웨어에서 처리합니다.

UART가 CPU 사용의 관점에서 더 효율적입니다. SoftSerial은 가장 효율성이 낮고 늦습니다. SoftSerial은 텔레메트리 송신과 같이 용량이 적은 경우에만 사용해야 합니다.

UART 포트는 가끔 온보드 USB -> UART 변환기를 통해 노출이 됩니다. Naze와 Flip32 보드에 있는 CP2102 등이 그 예입니다. 비행 콘트롤러가 온보드 USB -> UART 컨버터가 없고 VCP를 지원하지 않으면, 별도의 USB -> UART 변환보드가 필요합니다. 이런 보드를 FTDI 보드라고 합니다. FTDI는 사실 USB -> UART 보드에서 사용되는 칩(FT232RL)의 제작회사일 뿐입니다.

USB -> UART 변환기를 골라야 하면, DTR이 노출되어 있고, 3.3v 및 5v를 선택할 수있는 것으로 고르세요. 훨씬 유용하기 때문입니다.

예를 들면 : 

SoftSerial 및 UART 포트는 모두 USB -> UART 변환보드를 사용하면 PC에 연결할 수 있습니다.

시리얼 설정(Serial Configuration)

시리얼 포트 설정은 Cleanflight 설정프로그램 GUI를 이용하는 것이 가장 좋습니다.

먼저 시리얼포트를 설정하고, 포트를 사용할 기능을 활성화/비활성화 시킵니다. SoftSerial 포트를 설정할 경우, SOFTSERIAL 기능도 반드시 활성화 시켜야 합니다.

제한사항(Constraints)

만약 설정이 유효하지 않다면, 시리얼 포트 설정은 기본값으로 리셋되고 기능들이 비활성화 될 수 있습니다.

  • 반드시 MSP/CLS로 사용되는 포트는 존재해야 합니다.
  • MSP 포트는 최대 2개까지 가능합니다.
  • 포트에서 어떤 function을 사용하려면, 해당 function의 관계 기능도 활성화시켜야 합니다. 예 : 어떤 포트를 GPS로 사용하려면, GPS 기능을 활성화시켜야 합니다.
  • SoftSerial 을 사용할 경우 모든 SoftSerial 포트는 반드시 동일한 baudrate를 사용해야 합니다.
  • SoftSerial은 최대 19200 baud까지 사용할 수 있습니다.
  • MSP를 제외한 모든 텔레메트리 시스템은 buadrate를 덮어쓰려는 어떠한 시도도 무시합니다.
  • MSP/CLI 는 Blackbox 혹은 텔레메트리 둘중 하나와 공용할 수 있습니다. 공유한 모드에서 블랙박스나 텔레메트리는 시동이 걸렸을 때만 출력합니다.
  • Smartport 텔레메트리는 MSP와 공유할 수 없습니다.
  • 기타 어떤 시리얼포트 공유 조합도 불가능합니다.
  • 원한다면 여러가지 텔레메트리 시스템을 동시에 사용할 수 있습니다. 
  • 각각의 텔레메트리 시스템은 하나만 사용할 수 있습니다. 예를 들어, FrSky 텔레메트리를 동시에 사용할 수 없지만, MSP 텔레메트리 + FrSky 를 다른 포트에서 각각 사용하는 것은 무방합니다.

CLI 를 통한 설정

CLI를 사용하여 설정할 수 있지만, 명령어는 개발자 및 고급 사용자에게만 허용되어 있습니다.

CLI 명령 serial 은 다음 6가지 변수를 받습니다.

  1. Identifier 
  2. Function bitmask (see serialPortFunction_e in the source) 
  3. MSP baud rate 
  4. GPS baud rate 
  5. Telemetry baud rate (auto baud allowed) 
  6. Blackbox baud rate

Baud Rates

허용되는 baud rate는 다음과 같습니다.

IdentifierBaud rate
0Auto
19600
219200
338400
457600
5115200
6230400
7250000

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Serial.md

이전글 : 명령어입력(CLI)

다음글 : 수신기(Receivers, Rx)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 7. 17:13

명령어입력(CLI)

Cleanflight에는 설정을 바꾸거나 FC를 설정할 있는 명령어입력 인터페이스(CLI : Command Line Interface)를 지원합니다.

CLI에 접근하는 방법(Accessing CLI)

명령어입력환경은 GUI 도구를 통해서도 접근할 수 있고, CLI 시리얼 포트에 연결된 터미널 에뮬레이터를 통해서도 접근할 수 있습니다.

  • 터미널 에뮬레이터를 CLI 시리얼 포트(기본으로 MSP 시리얼포트와 동일함)에 연결합니다.
  • msp_baudrate(기본 115200)으로 설정한 baudrate를 사용합니다.
  • # 문자를 보냅니다.

설정을 저장하려면 'save'라고 입력합니다. 저장을 하면 비행콘트롤러가 재부팅됩니다.

저장하지 않고 CLI를 마치려면 비행콘트롤러를 끄거나 'exit'을 입력합니다.

명령어 목록을 보고 싶으면 'help'를 입력하고 리턴키를 누릅니다.

(현재의 프로파일을 포함하여) 설정상태를 덤프 받으려면, 'dump' 명령을 사용합니다.

CLI 명령 및 기타 설정에 관해서는 이 문서의 아래 부분을 참고하세요.

CLI를 통한 백업

메인 전원을 끊고, USB/FTDI 를 통해 CLI를 연결합니다.

CLI를 이용한 덤프

rateprofile 0
profile 0
dump

프로필(profile)을 CLI를 통해서 덤프받기

profile 1
dump profile
profile 2
dump profile

Rate 프로필(rate profile)을 CLI를 통해서 덤프받기

rateprofile 1
dump rates
rateprofile 2
dump rates

그 다음 화면에 출력된 내용을 복사하여 저장합니다.

CLI를 통한 복구(Restore)

먼저 CLI의 [defaults] 명령을 사용합니다.

백업을 사용하여 복구할 경우, 최신의 디폴트값을 덤프받아 무엇이 바뀌었는지 알아보는 게 좋습니다. - 펌웨어 버전이 새로 나올때 마다 이렇게 작업해 두면, 펌웨어 버전간의 CLI 변화을 알 수 있습니다. 예를 들어, 2014년 12월에 기본 GPS 내비게이션 PID 값들이 변경되었습니다. 만약 백업된 내용을 아무 생각없이 복구시키면, 새로운 기본값에 의한 좋은 점을 놓치게 될 것입니다.

CLI를 사용하여 저장된 백업 명령으로부터 모든 출력을 보냅니다.

파일을 너무 빨리 보내지는 마세요. USART 어댑터(내장 어댑터 포함)를 사용할때 FC가 속도를 따라잡지 못할 수 있기 때문입니다. 하드웨어적인 시리얼 flow 제어가 없기 때문입니다.

한번에 몇줄 정도씩만 복사/붙이기를 하는 것이 좋습니다.

완료된 뒤 백업 절차를 다시 반복하세요.!~

두개의 백업을 비교하여 복구된 설정이 만족스러운지 확인하세요.

필요하다면 새로운 기본값에 대해 이상에서 기술된 내용을 반복합니다.

CLI 명령어 참조 매뉴얼

명령어를 클릭하면 관련 문서페이지로 이동합니다.

CommandDescription
1wire <esc>passthrough 1wire to the specified esc
adjrangeshow/set adjustment ranges settings
auxshow/set aux settings
mmixdesign custom motor mixer
smixdesign custom servo mixer
colorconfigure colors
defaultsreset to defaults and reboot
dumpprint configurable settings in a pastable form
exit
featurelist or -val or val
getget variable value
gpspassthroughpassthrough gps to serial
help
ledconfigure leds
mapmapping of rc channel order
mixermixer name or list
mode_colorconfigure mode colors
motorget/set motor output value
play_soundindex, or none for next
profileindex (0 to 2)
rateprofileindex (0 to 2)
rxrangeconfigure rx channel ranges (end-points)
rxfailshow/set rx failsafe settings
savesave and reboot
setname=value or blank or * for list
statusshow system status
versionshow version
serialconfigure serial ports
servoconfigure servos
sd_infosdcard info
tasksshow task stats

CLI 변수 참조 매뉴얼

변수명을 클릭하면 관련 문서페이지로 이동합니다.

===== 아주 많음. 생략


원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Cli.md

이전글 : 설정(Configuration)

다음글 : 시리얼(Serial)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

  1. 잉어오빠

    덕분에 클린플라이트에 대해 많이 배우고 있습니다. 감사합니다~^^

    2016.11.01 07:18 [ ADDR : EDIT/ DEL : REPLY ]

드론/쿼드콥터2016. 9. 7. 14:56

설정(Configuration)

Cleanflight는 주로 Cleanflight 설정프로그램 GUI를 통해 설정합니다.

명령어입력방식(CLI) 및 GUI는 시리얼포트를 연결하면 접근가능합니다. USB 버추얼 시리얼포트, 물리적인 하드웨어 UART포트, SoftSerial 포트 등으로 연결하면 됩니다.

자세한 내용은 시리얼(Serial) 부분을 확인하시고, 사용하고 계신 보드에 어떤 시리얼포트가 있는지 등은 해당보드에 관한 정보를 확인하세요.

현재 GUI는 모든 내용을 설정할 수 없으므로, 일부 기능및 설정의 경우 반드시 CLI를 사용해야 합니다.

계속 개발중이기 때문에 GUI는 모든 설정을 백업하지 못하므로, 새로운 버전의 설정프로그램이나 펌웨어가 나올 경우 CLI를 사용하여 현재의 설정을 백업 받아두는 것이 좋습니다. 

GUI

Cleanflight 설정은 GUI 도구를 사용하는 것을 추천합니다. GUI 도구에는 명령어입력(CLI)이 가능한 터미널도 포함되어 있습니다.

크롬 스토어에서 Cleanflight 설정프로그램 받기

펌웨어 호환성문제로 최신버전의 GUI를 사용하여 FC에 접근할 수 없는 경우에도, CLI 를 통해 FC에 접근하여 설정값을 백업하는 등의 작업이 가능하며, 구 버전의 설치프로그램을 설치하여 사용할 수도 있습니다.

예전 버전의 설정프로그램(Configurator)는 Configurator releases 페이지 에서 다운로드 받을 수 있습니다. 설치방법은 해당 설정프로그램과 함께 나오는 README 파일을 확인하세요.

명령어입력(CLI)

Cleanflight 는 명령어입력 인터페이스(CLI)를 통해서도 설정할 수 있습니다.

자세한 내용은 명령어입력(CLI)를 참고하세요.

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Configuration.md

이전글 : 설치(Installation)

다음글 : 명령어입력(CLI)


Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 7. 14:28

설치(Installation)

설정프로그램(Configurator) 사용하기

아래는 Cleanflight 설치프로그램을 사용하여 보드를 초기화하는 일반적인 절차입니다. Cleanflight 설치프로그램은 모든 보드를 지원하지 않으므로, 진행하기 전에 가지고 계신 보드가 가능한지 문서를 확인하시기 바랍니다.

먼저 설치프로그램(Configurator)이 설치되어 있는지 확인한 후,

  • 비행콘트롤러를 PC에 연결합니다.
  • Cleanflight 설정프로그램을 시작합니다.
  • 자동으로 보드가 연결되었다면, "Disconnect" 를 클릭합니다.
  • "펌웨어 초기화(Firmware Flasher)" 탭을 클릭합니다.
  • 인터넷이 연결되어 있는지 확인하고 "Load Firmware[Online]" 버튼을 클릭합니다.
  • "펌웨어/보드 선택(Choose a Firmware /Board)" 드롭다운 메뉴를 클릭하고, 여러분의 비행콘트롤러에 해당하는 최신의 안정 버전을 선택합니다.
  • 중요 : 표시되는 발매노트(release notes)를 읽고 이해하세요. 업그레이드 할 경우에는 현재의 펌웨어 버전 이후의 모든 발매노트를 읽어보세요.
  • 맨처음으로 Cleanflight로 보드를 초기화한다면 "Full Chip Erase" 체크박스를 클릭하세요.
  • PC에 비행콘트롤러를 연결합니다. 올바른 시리얼포트가 선택되었는지 확인하세요.
  • "펌웨어 설치(Flash Firmware)" 버튼을 누르고 잠시 기다리세요.
  • 진행막대가 초록색으로 변하고 "Programming : SUCCESSFUL"이 뜨면 성공입니다.

직접 설치

가지고 계신 보드의 설치방법을 참고하세요.

업그레이드(Upgrading)

업그레이드 할 경우, 현재의 설정을 백업해두거나 Dump로 받아두세요. 일부 펌웨어는 역방향으로 호환되지 않을 수 있고, FC가 오래전 설정을 감지할 경우, 기본 설정으로 복구될 수 있습니다.

백업/Restore 절차

현재의 설정을 백업하고 다시 불러들이는 방법은 명령어입력(CLI)을 참고하세요.

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Installation.md

이전글 : 안전(Safety)

다음글 : 설정(Configuration)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 7. 14:08

안전(Safety)

많은 분들이 말씀하시는 것처럼, 멀티콥터와 RC 모델은 일반적으로 매우 위험합니다. 특히 테스트중엔 더 위험하고요. 아래는 몇가지 간단한 지켜야 할 사항들입니다.

  • 비행시킬 것이 아니라면 절대로 프로펠러를 꼽은 채 절대 시동을 걸지 마세요.
  • 처음으로 설정하거나 펌웨어를 설치하거나 기타 의심스러운 상황에서는 반드시 프롭을 제거하세요.

설치 전(Before Installing)

보다 상세한 정보는 명령어입력방식(CLI), 제어(Controls), 비상대책(Failsafe), 비행모드(Modes)등의 문서를 확인하시기 바랍니다.

Cleanflight 설정프로그램에서 수신기(Receiver)탭을 사용하여 Rx 채널의 중앙값이 1500(후타바 RC의 경우 1520)이고, 조종간을 움직였을 때 최소 최대값이 각각 1000, 2000에 이르는 지 반드시 확인하시기 바랍니다. 이 값을 잘못 설정하면 시동을 걸지못한다던지(끝 지점까지 도달할 수 없어서), 시동을 걸자마자 비상대책(Failsafe)이 가동된다던지와 같은 문제가 발생하게 됩니다.

RC 송신기 채널의 끝 지점과 트림/부트림을 조종하여야 1000 에서 2000이 도달할 수도 있습니다.

각 채널의 참조 값은 비행콘트롤러의 작동에 영향을 주고 비행모드에 따라 달라질 수 있습니다???

시동시 프롭회전(Props Spining When Armed)

기본 설정하에서는 콘트롤러가 시동을 걸면 프롭이 낮은 속도로 회전합니다. 이렇게 해두면 시동이 걸렸다는 걸 눈으로 확인할 수 있기 때문에 이렇게 설정하는 것을 추천합니다.

이러한 반응이 싫으시다면, 설정프로그램(Configurator)에서 MOTOR_STOP 과 관련 문서를 보세요. 이 기능을 활성화하면 시동을 걸더라도 프롭이 회전하지 않습니다.

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Safety.md

이전글 : 시작하기(Getting Started)

다음글 : 설치(Installation)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 6. 23:08

시작하기(Getting Started)

이 글은 Cleanflight를 사용하여 비행콘트롤러와 기체를 설정하여 날려보지 않은 분들에게 도움이 되는 단계별 가이드입니다. 하지만, 기본적인 RC 지식이 필요합니다. 완전히 아무것도 모르는 분이라면 이 글을 읽기전에 먼저 RC에 대한 개념과 기법(예, 기본적인 조정, 납땜, 송신기 조작 등)에 익숙해져야 합니다. RCGroupsYoutube show FliteTest 를 보시면 도움이 되실 겁니다.

면책조항: 이 문서는 계속 변경되고 있습니다. 우리는 여러분의 프로젝트의 성공이나 안전을 보장해드리지 않습니다. 이 시점에서 문서는 도움을 위한 가이드 수준으로, 안전과 성공을 위해 반드시 해야하는 것들에 대한 권위있는 체크리스트가 아닙니다. 항상 일반상식과 비판적 사고를 따르고 항상 주의해주시기 바랍니다.

Cleanflight에 대한 개요 및 커뮤니티 활동에 대해서는 개요(Introduction)을 읽어보시기 바랍니다.

하드웨어

참고 : 비행콘트롤러는 대부분 가속도계를 장착하고 있습니다. 이 기기는 충격에 민감합니다. 비행콘트롤러를 기체에 설치하기 전, 매우 부피가 작습니다. 콘트롤러를 떨어뜨리거나 부딪치면 가속도계에 큰힘이 작용하여 망가뜨릴 수 있습니다. 최소한 지켜야 할 것 : 보드를 기체에 설치하기 전까지 아주 조심해서 다루세요.

Cleanflight(이하 CF) 를 설치할 수 있는 하드웨어에 대한 개요에 대해서는 비행콘트롤러 하드웨어를 읽어보세요. 특정 보드에 대한 정보는 보드별 문서를 참고하세요.

  • 여러분이 비행콘트롤러보드(이하 FC)를 가지고 있다면 먼저 FC에 딸려오는 매뉴얼부터 읽어야 합니다. 소프트웨어 설정에 대해서는 생략할 수 있습니다. 이 글에서 다루기 때문입니다.
  • 수신기 연결방법을 결정하려면 수신기(receiver) 부분을 읽어보시고, ESC나 서보 등을 연결할 출력(output)에서 몇개의 핀이 필요한지 결정하려면 믹서(Mixers) 부분을 읽어세요.
  • Cleanflight로 배터리를 체크하고 싶다면 배터리 체크(Battery Monitoring)을 읽어보세요.
  • 콥터로부터 이상신호를 듣고 싶다면 저(Buzzer) 부분을 읽고, 사용할 핀에 표시를 해두세요.
  • 보드에서 전송되는 RC 수신기의 RSSI(수신신호강도)를 알고 싶다면 RSSI 를 참고하세요. 경우에 따라서 수신기와 FC 간에 추가적인 연결이 필요할 수도 있습니다.
  • 기체에 Loiter(고정비행)이나 Return to Launch(원점 복귀)기능을 위해 GPS 를 사용하시고 싶다면 GPS 부분 GPS 테스트 하드웨어를 읽어보세요.
  • 어떤 추가 장비(블랙박스, OSD, 텔레메트리 등)가 필요할지, 어떻게 연결하는지에 대해 알고 싶다면 시리얼(Serial) 부분을 읽어보시기 바랍니다. 
  • 이제 어떤 기능을 사용할 지, 어떤 핀이 필요한지 알았다면, 이제 장치들을 보드에 납땜하세요. 필요한 핀만 납땜하면 무게를 줄이고 깔끔하게 조립할 수 있지만, 나중에 새로운 기능을 추가하고 싶을 경우, 기체에서 보드를 분리하고 빠뜨린 핀을 추가로 납땜해야 하므로, 신중하게 계획을 세우세요. FC에 납땜을 하기전에 실수를 하지 않도록 납땜방법에 관한 정보를 확인하고, 충분하게 연습하시기 바랍니다.
  • Oneshot125를 사용할 계획이라면 점퍼를 사용해 ESC를 활성화시키거나, 최신의 안정된 펌웨어로 ESC에 새로 설치하거나, (지원할 경우) 세팅에서 Damped Light을 활성화시키세요. 자세한 내용은 ESC의 문서나 온라인 토론그룹을 확인하시기 바랍니다.

소프트웨어 설정(Software setup)

이제 보드를 결합했으면 FC 보드를 컴퓨터에 연결하여, 클린플라이트 펌웨어를 설치할 수 있습니다. 컴퓨터에 크롬 브라우저 혹은 구글 크롬을 설치하고, 구글 확장프로그램에서 Cleanflight 설정프로그램을 추가하고 실행시킵니다.

그 다음 여기에 있는 설명을 따라 FC에 펌웨어를 설치합니다. 

Cleanflight 설정

이제 FC에 Cleanflgiht 펌웨어가 설치되었으니, 연결하여 설정프로그램(Configurator)를 사용할 수 있습니다. 연결이 안된다면 바로 위에 있는 방법대로 다시한번 실행하세요.

CF를 설정하는 방법은 두가지가 있습니다. 설정프로그램 화면의 탭을 이용하는 방법(화면에서 값을 선택/변경하거나 체크박스를 클릭 하는 등)과 명령어입력 방식(CLI : Command Line Interface)입니다. 일부설정은 명령어 입력으로만 설정할 수 있으며, 일부 설정은 GUI 화면을 이용해 설정하는 것이 최선입니다. (특히 포트 설정의 경우, 명령어 방식은 설정방법이 문서로 정리되어 있지 않습니다.)

  • 이쯤에서 RC 수신기와 송신기를 설정하는 것이 좋습니다. Tx를 최소한 4채널(Aileron, Elevator, Throttle, Rudder)을 설정하되, 가능하다면 좀 더 설정하는 게 좋습니다. 예를 들어 채널 5, 6을 3위치 스위치로 설정해두었다가 나중에 이용할 수 있습니다. AIL/ELE/RUD에 EXPO를 설정할 수도 있지만, 나중에 CF 소프트웨어로도 설정할 수 있습니다. PPM 이나 PWM에서 RSSI(수신신호강도)를 사용한다면, Rx를 여분 채널에 출력하도록 설정하세요. 
  • 수신기를 FC에 연결하고, FC를 컴퓨터에 연결합니다. 필요하다면 Rx를 BEC를 통해 전원을 공급하세요.(5V. 양극/음극을 잘 확인하세요)
  • PC에서 Cleanflight 설정프로그램을 연결한 후, 첫번째 탭을 누릅니다. 보드를 움직이면 이에 따라 보드 애니메이션이 적절하게 움직이는지 확인하세요. 가속도계 교정을 실시합니다.
  • 설정 탭(Configuration Tab) : 기체의 배치형태(예 : Quad X)를 선택하고, 해당 탭에서 옵션들이 관련있는지 체크합니다.
    • 예 : Oneshot을 지원하는 ESC의 경우 ONESHOT125를 활성화시킬 수 있습니다.
    • RC 수신기가 PPM 출력을 사용할 경우, RX_PPM을 설정합니다.
    • FC의 배터리 관리기능을 사용할 계획이라면, Battery Voltage 밑에 있는 VBAT를 체크하세요.
    • 아날로그 RSSI를 사용한다면, RSSI 아래에서 활성화하세요. RSSI가 PPM 스트림에 넣어지는 RSSI를 사용하는 경우에는 이 설정을 활성화시키지 마세요.
    • FC가 시동준비(arming)되면 모터가 회전하게 됩니다. 이게 싫으시다면 MOTOR_STOP을 활성화하세요.
    • 아래의 지침에 따라 Throttle의 최소, 중앙, 최대 값을 조종하세요.
      • 최소 Throttle - 이 값을 모든 모터가 안정적으로 시작될 수 있는 최소 Throttle 수준으로 설정하세요. 너무 낮으면 일부 모터가 spindown 후에 적절하게 시작되지 않을 수 있고, 이로 인해 안정성이 떨어지고 제어가 안될 수 있습니다. 일반적으로 1100으로 설정합니다.
      • 중앙 Throttle - Throttle 을 중앙으로 두었을 때의 Throttle 수준. 많은 송수신기는 1500을 사용하지만, 후타바 등 일부는 1520 이나 다른 값을 사용할 수 있습니다.
      • 최대 Throttle - ESC가 수신하는 최대 Throttle 수준. 일반적으로 2000으로 설정합니다.
      • 최소 명령 - 기체를 시동해제되어 있을 때 모터가 회전하지 않도록 ESC에 보내는 "idle" 신호 수준입니다. 일반적으로 1000으로 설정합니다.
    • 마지막으로 Save를 클릭하고 리부팅을 합니다.
  • 수신기 탭(Receiver tab) :
    • 송신기의 입력에 따라 채널이 움직이는지 확인합니다.
    • RSSI를 사용한다면 RSSI 채널과 함께 채널 맵(Channel map)이 올바른지 확인합니다.
    • 각 채널이 약 1000에서 2000까지 들어오는지 확인합니다.  제어(Control) 쪽과 rx_min_usec rx_max_usec 도 확인하세요.
    • 여기에서 Tx 대신 EXPO를 설정할 수도 있습니다.
    • Save를 클릭합니다.
  • 모드 탭(Modes tab) :원하는 모드로 설정합니다. 각각의 모드에 대한 상세한 내용은 여기를 참고하세요. 처음에는 주로 HORIZON 모드가 필요합니다.
  • 이 절을 마치기 전에 반드시 ESC를 교정하고, FC를 프레임에 설치하고, 필요하다면 RSSI 케이블, buzzer와 배터리를 연결합니다.

최종 시험과 안전(Final Testing and Safety)

CF를 적절하게 설정해야만 기체가 딴데로 날라가던가 최악의 경우 사람이나 물건으로 날라가는 사태를 피할 수 있습니다. 매우 중요한 단계이므로 처녀비행때까지 연기해서는 안됩니다. 반드시 비행장으로 나가기 전에 지금 테스트 하세요.

  • 먼저 안전 부분을 읽습니다.
  • FC를 시동준비(arm)시키는 방법과 기타 제어(Control)에 대해 알아봅니다.
  • 다음으로 비상대책(Failsafe)를 설정합니다. 천천히 정확하게.
  • 이제 벤치에서 프롭은 꽂지말고 (윗 문서에 따라) 비상대책이 적절하게 작동하는지 시험합니다.
  • 추가로 Tx 의 AIL/ELE 의 효과가 기체에서 적절하게 반응하는지 시험해보세요. 마찬가지로 RUD 입력도 시험해 보세요.
  • AIL/ELE 자동 조종 방향을 테스트합니다. 프롭은 없는 상태에서 Throttle을 30% 정도 올리고 기체를 기울이면 이를 보정하기 위해서 순간적으로 모터 속도가 변경되는지 확인해보세요. 이는 무작위적인 바람에 FC가 대응하는지에 대한 시험입니다.
  • HORIZON 모드에서 AIL/ELE 자동 보정 방향을 테스트합니다. Throttle을 30%정도 올린 상태에서 기체를 기울이면 모터의 RPM이 올라가고 다시 수평으로 만들 때까지 높은 RPM이 유지되는지 봅니다. 이는 자동레벨 기능에 대한 시험입니다.

이 테스트중 하나라도 실패하면 시행을 하지 마시고 다시 설정합니다. 채널을 반대(reverse)로 바꿔야 할 수도 있고, 보드의 방향이 잘못 설정되어 있을 수도 있습니다.

비행(Flight)

야외로 나가서 수신기를 켜고 기체를 바닥에 놓은 후 배터리를 연결하고 기다립니다. 시동을 걸고 날립니다. 기체가 시동이 걸리지 않는다면 빨간색 LED 가 몇번 반짝거리는지 세어보고 제어(Controls) 부분에 들어가 이유를 알아보세요.

추가 정보

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Getting%20Started.md

이전글 : 개요(Introduction)

다음글 : 안전(Safety)


Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 6. 22:52

Cleanflight

Cleanflight에 오신 걸 환영합니다.

Cleanflight는 비행콘트롤러 펌웨어 및 관련 도구를 제공하고자 하는 커뮤니티 프로젝트입니다.

주요 목표(Primary Goals)

  • 커뮤니티가 주도함
  • 친밀한 프로젝트 분위기
  • 사용자의 필요에 집중함
  • 최고의 비행 성능
  • 이해가능하고 유지가능한 소스코드

하드웨어

자세한 사항은 비행콘트롤러 하드웨어를 참고하세요.

소프트웨어

소프트웨어는 펌웨어(firmware)와 설정도구(configuration tool)등 두 가지 부분으로 구성됩니다. 펌웨어는 비행콘트롤러 보드상에서 실행되는 코드입니다. GUI 설정도구(configurator)는 비행콘트롤러를 설정하는데 사용되며, 윈도, OSX, Linux 에서 실행됩니다.

피드백과 기여(Feedback & Contributing)

우리는 모든 종류의 피드백을 환영합니다. 원하신다면 우리는 언제든지 여러분의 의견을 원합니다. 문제가 있다면 어떻게 향상시킬 수 있는지 말씀해주시면, 모든 분들을 위해 개선할 수 있을 것입니다. 

기여하고 싶으시다면 다음의 글을 참고하세요.

https://github.com/cleanflight/cleanflight#contributing

개발자분들은 다음 글을 읽어보세요.

https://github.com/cleanflight/cleanflight/blob/master/CONTRIBUTING.md

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Introduction.md

다음글 : 시작하기 (Getting Started)

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 1. 00:31

자주 묻는 질문중의 하나가 F1, F3, F4 는 어떤 차이가 있고, 어느것이 성능이 좋느냐 하는 것이다.

이 글은 Betaflight 혹은 Cleanflight를 사용하고 있는 사람들에게만 의미가 있고 유용할 것이다. 이 글은 F1 및 F3만 집중적으로 다룬다. 현재의 비행컨트롤러 중 대다수가 이 프로세서를 사용하고 있기 때문이다.

F1, F3, F4의 의미?

기본적으로 F1, F3는 비행콘트롤러의 두뇌인 STM32 프로세서의 다른 시리즈이다. STM32 시리즈는 현재 F7, F4, F3, F2, F1, F0, L4, L1, L0, W 등 10가지가 있다. 

F1 비행 콘트롤러의 좋은 예가 Naze32 와 CC3D이며, F3 보드로는 X-Racer, Motolab Tornado, Seriously Pro Racing F3, RMRC Dodo 등이 있다. 자세한 사항은 레이싱 드론용 비행 콘트롤러를 확인하라.

또한 이미 F4 비행콘트롤러도 나와 있다. OpenPilot Revolution, Sparky V2 등이 그 예이다.

Seriously Pro Racing F3Seriously Pro Racing F3

F1과 F3 의 차이

간단히 말해 F3는 F1에 비해 다음과 같은 장점이 있다.

  • 클럭속도는 동일하지만, 부동소숫점연산(floating point calculation)이 빠르다.
  • UART 포트가 하나 더 있다.
  • 일부 새로운 F3 FC는 F1 FC 보다 설계/기능이 더 좋다.

XRacer F303 flight controller topXRacer F303 flight controller top

처리 성능(속도)

F1 과 F3는 최대 클럭 속도가 72 MHz로 동일하다. 반면 F4의 최대 클럭 속도는 180 MHz 이다.

F1 과 F3의 속도가 동일하지만, 수치 코프로세서가 있어 부동소숫점 연산을 더 빠르게 수행할 수 있다. F3는 PID controller 2 (Luxfloat)에서 상당히 빠르게 작동한다. Luxfloat가 부동소숫점을 기반으로 한 알고리듬이기 때문이다. 하지만, PID contoller 1 (Rewrite)의 경우 정수 기반 알고리듬으로써, 성능향상은 없다.

많은 사람들이 이미 아는 바와 같이 Betaflight에서 현재의 최적 looptime 은 1000 이다. 자이로 샘플속도(1kHz)에 동기화 되어 있다. (약간의 배경 설명. 이 1kHz 샘플 제한은 자이로셑서와 프로세서를 연결하는 I2C 연결 때문이다. 예를 들어 CC3D의 경우 더빠른 통신이 사용된다. SPI라고 하는데 8 kHz로 작동된다. 따라서 이론상 looptime은 125까지 내려갈 수 있다. 그러나, 널리 적용하기전에 그처럼 낮은 looptime이 가능한지는 좀더 테스트해봐야 할 것으로 생각한다.)

F3 보드는 가속도계, LED 줄, Soft-serial 과 같이 CPU-intensive 작업을 돌릴 때에도 PID controller 1 및 2에서 1000 looptime까지 쉽게 내릴 수 있다. 그러나, F1 보드의 경우, 이러한 기능을 먼저 비활성화시켜야 한다. 예를 들어 1000 looptime을 달성하려면 가속도계를 꺼야 한다. 다행히 F1에 여러가지 조치나 해킹, 오버클록 등을 하여 ACC 가 활성화된 상태에서 조차 Luxfloat에서 1000 looptime을 돌릴 수 있게 되었다.

betaflight 펌웨어가 아니라면 F3 보드에서 FPU가 있다는 건 엄청난 이득이다. 가속도계 계산은 상당한 양의 부동소수점 계산이 필요하다. Cleanflight 1.10 공식발매버전의 경우 우리가 아는 바와 같이 F1 비행콘트롤러에서 1200 looptime 이해로 내릴 수 없고, 가속도계를 끄면 600 looptime을 얻을 수 있지만, autolevel은 포기해야 한다. 하지만, F3의 경우엔 가속도계를 켠상태에서도 600 looptime을 획득할 수 있다.

Betaflight를 돌릴 경우, 나는 사실 F3 보드를 꼭써야 할 필요가 없다는 데 동의하지만, 모든사람이 Betaflight를 원하는 것은 아니다.

MotoLab Tornado F3MotoLab Tornado F3

UART 포트의 수

F1은 F3와 마찬가지로 최적 looptime이 1000이기 때문에 내 생각에 F3의 가장 큰 장점은 시리얼포트(UART)가 하나 더 있다는 점일 것이다.

MiniOSD, SBUS SmartPort telemetry, Blackbox(Openlog 와 SD카드를 이용한), 컴퓨터와의 연결, GPS 등 이 모든 것들이 시리얼 포트를 사용한다.

Naze32와 같은 F1 비행콘트롤러의 경우 UART가 2개 뿐이다. 나의 경우 보통 blackbox, SBUS, MIniOSD를 동시에 다는데, F1의 경우에는 불가능하다. F3보드에는 UART가 하나 더 있어 편리하다.

F3 의 또다른 장점

어떤 F3 보드의 경우 5v 레귤레이터 또는 Pololu backpack 용 핀을 가지고 있다. 따라서, 이론적으로는 비행콘트롤러를 직접 LiPo 배터리에 연결할 수 있다.

F3보드는 또한 UART에 내장 hardware inversion 이 있어서 SBUS와 SmartPort를 연결하기 위해 X4B-SB 수신기를 해킹할 필요가 없다. F1 보드는 추가 하드웨어나 해킹이 필요하다.

F3는 거의 STM32 F1 시리즈와 pin-to-pin으로 호환가능하여, 어떤 사람의 댓글에 따르면 CC3D에서 F1 칩을 F3으로 성공적으로 교체하여 125 looptime으로 돌리고 있다고 한다.

참고로 F3는 플래시 데이터 용량과 직접적인 관계는 없다. 실제로는 보드에 사용되는 메모리가 어떤 메모리칩인가에 의해 결정된다.

RMRC Dodo F3RMRC Dodo F3

그래서, 어떤 걸 사용할까?

나는 아직 모든 드론에 F1 보드를 사용하고 있다. betaflight를 사용중으로 그것만 필요하다면 구지 F1 비행콘트롤러를 차버릴 필요는 없다.

그러나 언급한 바와 같이 Luxfloat와 가속도계를 사용하게 되면 F1 보드는 거의 한계에 근접하게 된다. soft-serial과 같이 다른 기능을 켜야 한다면 looptime을 1000에 맞추는데 문제가 생길 수 있다. 아울러 Cleanflight/Betaflight는 계속 진화하고 있어, F1 보드는 좀더 높은 처리능력이 필요할 기능을 사용하지 못할 수도 있다.

만약 내일 새로운 FC를 사야한다면 나는 아마도 F3를 구입할 것 같다. 하지만, 예산이 부족하다면 F1도 나쁘지 않다.

이글은 2015년 10월 15일에 올린 글임

원본 : https://oscarliang.com/f1-f3-f4-flight-controller/

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 8. 17. 11:01

며칠전 레이싱드론을 조립했습니다. 정확히 말하자면 저는 알려준 대로 부품을 구입해서, 조립하는 걸 지켜보면서 배운 것 뿐입니다. 그래도 다음번을 위해서라도 조립했던 과정을 정리하려고 합니다. 누군가에게는 도움이 되리라 생각하면서요.

일단 구입 부품입니다. 

맥스드론에서 구입한 목록. 총 248,000원. 여기에서 중요한 건 Vector Black Frame 과 ESC 그리고 Flight Controller 입니다.

다음 하비존에서 구입한 목록 : 총 96,800원

마지막으로 드론프렌즈에서 구매한 부품. 총 233,800원


총 비용은 578,600원 정도입니다. 생각보다 많이 나왔습니다. 제일 중요한 부품인 프레임+모터+ESC+FC 만해도 32만원정도 되네요. 직구를 하고 싼 부품을 사용하면 15-20만원정도에도 가능하다고 하는데, 다음에는 좀 싸게 맞춰봐야겠습니다. 어차피 부서질 수 밖에 없는 소모품이니까요.

사실 여기 사용된 제품은 프레임을 빼면 거의 모두 중국제입니다. 따라서 시간만 있다면 Aliexpress에서 구입하면 20-30% 정도 저렴하게 구할 수 있습니다. 예를 들어 모터 (Emax RS2205 2600K)는 60달러에 구입할 수 있습니다.

===

아래는 이렇게 구매한 부품들입니다.

먼저 프레임. VQ220 카본 프레임입니다. 크기는 220mm. 5 인치 프롭을 사용합니다.

조립하면 다음과 같은 모양이됩니다. 흠... 다른 분의 이야기로는 저런식으로 각진형태로 가공을 하면 충격에 약하다더군요. 다음엔 참고해서 다른 걸 주문하는 걸로.

아래 왼쪽은 4S 1300mAH짜리 배터리3개와 EMAX 모터입니다. 조립해주신 분은 배터리를 25개 보유중이라고 하던데... 저도 나중에 더 구매해야 할 것 같습니다. ㅠㅠ

아래는 SPIDER Pro 30A ESC 입니다. 하나는 예비. 30A라는 건 전류를 최대 30A까지 사용할 수 있다는 건데... 제가 예전에 조립했던 DJI F450 기체는 15A 짜리였고, Pixhawk용 4in1 ESC는 25A 였던 걸로 봤을 때, 레이싱드론은 훨씬 전기를 많이 사용하는 것 같습니다.

아래는 SP racing F3 비행콘트롤러

아래는 수신기입니다. 제가 원래 Futaba 14SG 송신기가 있어서 이에 맞는 호환 수신기를 구매했습니다.

프롭은 여유있게 구매했습니다. 많이 망가질 수 밖에 없으니까요.

아래는 배선용 소모품들입니다.

====

레이싱드론도 완제품을 구입할 수도 있고, 반제품을 사다가 그냥 조립만 할 수 있기도 하고, 저처럼 여러 부품을 각기 구매해서 조립하는 방법도 있습니다. 난이도와 원하는 성능에 따라 아주 다양한 선택이 가능합니다.

완전 조립하려는 이유는 조금이라도 나은 성능의 기체를 조금이나마 낮은 가격에 갖추려는 마음 때문입니다. 하지만, 이를 위해서는 어떤 부품들을 어떻게 조합하느냐가 가장 중요합니다. 그중에서도 가장 중요한 게 프레임 + 모터 + ESC + 프롭 의 조합이고요. 

하지만, 이에 대해서는 저는 아무것도 모르는 상태로, 그냥 추천해준대로만 구입한 상태입니다. 정말 좋은 조합인지에 대해서는 좀더 공부를 해봐야겠지만, 쉽지는 않을 것 같습니다. 모든 데이타가 나와 있는 것도 아니고, 대부분의 경우 이렇게 하면 좋더라 수준인데, 수많은 변수가 있어서 전부 믿을 수 있는 것도 아니기 때문입니다.

하여튼... 이 부품들로 조립에 들어갔습니다.

민, 푸른하늘


Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 4. 1. 16:55

Mission Planner에서 항공사진 촬영 계획 수립하면 이제 드론을 날려야죠.


촬영장소로 이동한 후에는 드론을 날리기 좋은 곳에 설치하고 절차에 따라 시동을 걸고 날리면 됩니다. 그 과정은 쿼드콥터 날리기 총정리를 참고하면 됩니다.


이 글은 이중에서도 날리는 방법에 대한 글입니다. 원래는 Futaba 14G와 같은 송신기를 사용하여 제어하지만, 제가 몇번 날려보니, 자동 미션을 수행할 경우 구지 송신기로 제어할 필요가 전혀 없었습니다. 어차피 기체의 현재 상태를 알기 위해서는 지상국 앱을 동시에 운영해야 하는데, 송신기로 제어하다가 지상국 앱으로 제어하다가 하다보면 오히려 혼란이 더 크기 때문입니다.


제 경우엔 안드로이용 지상국인 Tower 를 사용하여 제어를 했습니다. 만약의 경우를 대비하여 송신기를 켜두기는 했지만, 처음 시동 걸때 부터 시동을 끌때까지 모두 Tower만 사용해도 무리가 없었습니다.


아래는 제가 Tower로 자동미션을 수행한 모습입니다.



이렇게 촬영한 영상을 Geocoding을 하였습니다. 그 과정은 이 글 아랫부분에 정리되어 있습니다. 아래는 지오태깅한 결과를 구글어스에서 확인하는 모습입니다.



모든 결과는 여기에 들어가시면 볼 수 있습니다. geotagged 폴더 속에 있는 파일이 최종 파일입니다.

또... location.kml 이라는 파일을 클릭하면 위의 유튜브에 있는 내용을 직접 확인해 볼 수 있습니다.





글을 마치기 전에 한 가지 더. 며칠 전 배터리 전압 강하 때문에 골치를 썩다가 결국 그게 문제가 없는 것이며 다만 Battery Failsafe를 14.8볼트로 설정했기 때문에 발생했다고 했는데, 아래는 이번 미션 로그에서의 전압기록입니다.



시작 부분에서 급격한 전압 강하가 일어나는 것도 보입니다. 맨마지막 잔여 전압이 14.0 부근인데, 착륙을 시킨 이후에는 14.6 정도로 회복한 게 보이실 겁니다. 앞으로도 Battery Failsafe는 14.0 으로 설정해 두면 무난할 것 같습니다.



===

자... 이제 마지막 단계로 접어들었습니다. 정사영상과 3D 모델을 만드는 겁니다. 저도 아직 해보지 않아서 모르겠지만, 그다지 어렵지는 않다고 알고 있습니다. 그래도 제게 행운을 빌어주시길~


민, 푸른하늘










Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

  1. 안녕하세요. 드론으로 촬영만 주로 했었는데 요즘 매핑에 무지 관심이 많이 생긴 한사람입니다.
    한가지 궁금한게 하나 있어서 어쭤보려고요.
    타워 앱으로 비행계획을 세울 때, 위성지도를 일정수준 이상으로 확대시키려고 하면 일반 그림 지도로 바뀌더군요. 주변 지형물과 장애물들을 직관적으로 파악하기에는 위성사진지도가 좋던데 왜 안되는걸까요?
    타워 뿐 아니라 구글맵 또는 map box의 API를 사용하는 어플들이 모두 그런것 같더군요. 미국, 유럽, 중국 일본 심지어 북한 평양의 지도도 아주 자세히 확대되어 보이던데 왜 우리나라 지도만 그렇게 보이는지 혹시 아시는지요? 그리고 해결 방법이 없을까요?

    PS: 블로그 내용이 너무 좋은게 많고 평소 궁금해하던 것들이 많어서 많은 도움이 되네요. 좋은 정보 나눔에 감사드립니다.

    2016.09.03 21:52 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 말씀하시는 사항은 잘 모르겠습니다. 아마도 해결방법은 없을 거구요. 다만, 비행계획은 타워에서 하지 마시고, Mission Planner에서 미리 해두시는 게 좋겠네요.

      2016.09.03 21:58 신고 [ ADDR : EDIT/ DEL ]

드론/쿼드콥터2016. 3. 30. 16:59

제가 조립한 드론은 DJI Flamewheel F450 프레임에 Pixhawk 비행콘트롤러, Quattro 4 in 1 ESC, DJI 2212 /920KV 모터를 달았습니다. 그리고 다리와 캐논 카메라를 부착했고요. 총무게는 1.8 kg 정도입니다.


겨울동안은 날리지 못하고 있다가 지난 주 처음으로 시범비행을 했고요, 엊그제는 정식으로 촬영을 나갔습니다.


그런데 배터리와 관련하여 이상한 점이 발견되었습니다. 처음 장착을 하면 4.2V * 4 = 16.8 볼트 정도가 되는데, 일단 시동을 걸면 전압이 뚝뚝 떨어지고... 날기 시작하면 15.4 볼트 정도가 되고... 얼마 날리지 않아 Battery Failsafe 한계로 설정한 3.7V * 4 = 14.8V 이하로 떨어진다는 겁니다. 그로 인해 약 2분 30초 정도뿐이 날리지 못했는데도 저전압 경고가 발생하여 시동지점으로 돌아옵니다.


그런데... 다시 사무실에 돌아와 체크를 해보면 15.5 볼트정도 남았다고 나옵니다. 배터리 잔량은 56%라고 나오고요. 


그래서 여기저기 알아봤습니다. 원래 시동을 걸면(즉, 전기를 뽑아쓰기 시작하면) 전압이 떨어지는 게 당연하다고 합니다. 페이스북그룹에서도 그렇다는 분이 계셨는데, DIYDrones.org 에도 저와 거의 비슷한 현상을 호소하시는 분이 계시더군요.


일단... 번역을 해보면 다음과 같습니다.


문의내용 : 4S 10000mAh 배터리 (10C), 3DR 파워모듈, U3 700kv 모터, 40A AIR ESC를 탑재한 옥타콥터를 조립했음. 이 배터리는 최대 100A(10C * 10Ah 이므로) 정도 연속적으로 뽑아낼 수 있음. U3 모터 8개는 최대 160A 까지 뽑아쓸 수 있음. 3DR 파워모듈의 한계인 60A 를 초과하지 않도록 사용할 계획.


완충(16V) 한 상태에서 13.8 볼트까지 너무나 빨리 떨어져서 battery FS가 발동됨. 그런데 Mission Planner에서는 배터리가 95% 남았다고 나옴. 시동해제하고 전압을 재어보면 거의 15.8볼트. 


그래서 Battery FS를 아주 낮은 값 6.0V 로 설정하고, current 를 3000(30%)가 되면 배터리 FS가 발동되도록 함. 


며칠간 잘 날림. 실재 전류는 대부분 20-30A 였음. 추락사고 발생. 그때 MP에서 전압은 8.0V 였음. (배터리 FS가 발동되지 않았음). 그때 배터리 실재 전압을 측정해봤더니 13.3 (셀당 3.325) 였음. 다행히 추락당시 고도가 10미터 쯤으로 심각한 파괴는 없었음.


--- 이 다음부터 문의하는 내용인데 무슨 내용인지 정확히 파악이 안되어 생략함


아래는 이에 대한 답입니다.


모든 LiPo 배터리는 하중이 실리면 전압이 떨어진다. 떨어지는 정도는 소모 전류와 해당 배터리의 내부저항에 따라 달라진다.


C 가 낮은 배터리는 내부저항이 높으므로, 이 사례에서의 전압강하 그리고 하중을 제거했을 때 전압이 회복되는 것은 특별히 놀랄만 하지 않다.


이러한 문제를 감소시키는 방안으로는...

a) 센서 캘리브레이션
    http://ardupilot.org/copter/docs/common-power-module-configuration-in-mission-planner.html
b) 60A 에서 호버링 하고 있다면, 조종시 하중뿐 아니라, 그보다 높은 과도전류가 흐를 수 있다. 따라서 파워모듈의 과열이 이러한 문제를 악화시킬 수도 있다. 로그 파일을 보면 소비전력을 파악할 수 있다. 만약에 내가 당신이라면 더 높은 등급의 파워모듈 및 C가 높은 배터리를 구입하겠다.


페이스북 Hoi Jin Kim 님이 알려준 링크에도 비슷한 이야기가 쓰여져 있습니다. 이 글에는 오래된 배터리가 전압강하가 심하다는 이야기도 있네요. 배터리가 오래되면 내부 반응에 의해 저항이 높아지니까 이런 말도 틀린 게 아니겠죠.


이런 글들이 시동을 걸면 전압이 떨어지는 게 자연스런 현상이라는 걸 파악하는 데는 도움이 되었지만, 제 문제와는 직접적인 관련이 없는 내용입니다. 10C 짜리 배터리를 사용했다는 점, 3DR 파워모듈로는 감당이 안되는 옥타콥터에 사용했다는 게 주요 문제로 보입니다.


그런데 저의 경우에는 무게도 얼마 되지 않고(1.8kg 정도), ESC는 20A 짜리이기 때문입니다. 25C 배터리는 100A 까지 지속적으로 뽑아낼 수 있으므로(4000mA *25) 이 문제와는 완전히 상관이 없습니다.

====


하지만 이 질문답변을 보고 로그파일에 전압과 전류를 살펴봐야겠다고 생각이 들었습니다. 그래서 즉시 로그파일을 뒤졌습니다. 두번을 날렸는데 아래는 첫번째 로그중 전압(Volt)관련 그래프입니다. (CURR->Curr 에 있습니다.)



우선 맨 윗 선을 보면 배터리가 16.6 볼트 정도에서 시작한다는 걸 알 수 있습니다. 4.2*4=16.8이니 얼추 비슷합니다. 그런데 시동을 걸면 15.8 정도로 떨어지고, 날리기 시작하면 15.5 볼트 정도로 떨어집니다. 15.5 볼트는 셀당 전압으로는 3.9 정도가 됩니다. 


그 이후에는 천천히 내려옵니다. 약 3분쯤에 Battery Failsafe가 발동되었을 때는 14.5볼트(셀당 약 3.6볼트) 정도입니다. 제가 배터리 FS를 14.8볼트(셀당 3.7V)에 설정했으니 정확하게 발동된 셈입니다. 그리고 나서 RTL, Land 로 Home 위치로 착륙합니다.


착륙한 뒤에는 전압이 다시 15.2 정도로 올라가는 게 보입니다. 하중이 사라지면서 전압이 회복되는 것이죠.


결론적으로... 뭐가 잘못된 게 아니라 정상적으로 작동한 것입니다. 다만, 하중이 걸리면 전압이 떨어진다고 해도 실질적으로 파워는 남아 있습니다. 돌아와서 측정한 사진(아래)을 보시면 배터리가 56%나 남아 있다고 되어 있습니다. 즉, 아직 한참 더 날릴 수 있었는데 경고가 발생했다는 것입니다.



이때 쯤 생각이 난 것이... 이전 비행에서는 배터리 경고를 14.0으로 해서 나갔었는데, 이번엔 14.8로 설정해서 나갔다는 것이었습니다. 그래서 이전 비행 로그를 비교해 봤습니다.



이 비행은 총 11분 쯤에 배터리 경고가 떴습니다. 그때 전압은 14.0 보다 약간 낮은 정도였고요. 14.0으로 설정을 해도 충분히 비행이 가능하다는 것을 알 수 있습니다. 이 그래프에서도 착륙후 전압이 회복되는 걸 볼 수 있는데, 14.5 정도 수준이었습니다. 한 20% 정도 남아 있는 수준입니다. 


====

이제 이상이 없다는 건 파악했으니, 내일 다시한번 촬영을 나갑니다. 이번엔 성공해서 좋은 그림을 보여드리겠습니다. ㅎㅎ


민, 푸른하늘

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 3. 24. 14:55

시험 비행도 무사히 완료했으니 이제 항공사진 촬영용 미션을 생성하는 방법을 정리합니다. 


이 글은 여기를 참고로 하고...(앞부분은 번역. 아래에 있음) 제가 직접 미션을 생성하는 방법을 정리하였습니다.


항공사진 촬영용 미션은 우선 촬영대상지역을 폴리곤으로 생성한 후, 이 지역을 대상으로 자동으로 웨이포인트를 생성하는 순서를 따릅니다.


먼저 Mission Planner에서 "FLIGHT PLAN" 탭으로 이동합니다. 지도화면에서 시작하고자 하는 지점에서 마우스 우클릭을 하고 아래와 같이 Draw Polygon -> Add Polygon Point 를 선택합니다.



그러면 경고창(당분간 폴리곤 입력모드가 계속된다는)이 뜨고 빨간색 아이콘이 하나 생깁니다. 그 다음부터 마우스를 클릭할 때마다 폴리곤 꼭지점이 계속 추가됩니다. 입력이 완료된 후에는 아이콘을 드래그하여 원하는 지점으로 이동시킬 수 있습니다.




폴리곤을 완성하면, Auto MIssion을 생성할 수 있습니다. 아래와 같이 Auto WP를 선택하면 됩니다. 이중에서 Survey(Grid), Survey(Gridv2), SimpleGid 등 세가지가 격자식으로 일정한 간격으로 사진을 촬영할 수 있는 옵션입니다.



제가 제일 많이 사용하는 것은 Survey(Grid)입니다. Survey(Gridv2)는 직사각형을 회전시키는 기능이 없는 등 아직까지 활용하기는 약간 부족하고, SimpleGrid는 그냥 Waypoint만 생성해서 카메라 촬영에 관한 내용을 별도로 입력해줘야 합니다.


Survey(Grid)를 선택하면 아래와 같은 화면이 뜹니다. 이때 먼저 자신의 카메라를 선택하고, 고도(Altitude)와 각도(Angle)을 적당히 만져서 가장 최적의 경로를 만들어주면 됩니다. 자신의 카메라 방향에 따라 [Camera Top facing forward]를 선택해주고요. 그러면 아래쪽에 이 미션에 대한 정보가 여러가지가 나타납니다.사진은 총 20장을 촬영하고, 비행시간은 2:45 이라고 나오네요. 지상해상도는 1.6 cm. ㅎㅎ



여기에서 고도 60미터에서 Canon IXUS 870으로 촬영할 때 사진 한장의 크기는 73.9 x 55.4 라고 나옵니다. 촬영간격이 28미터로 설정되었으니, 종중복도는 50%((55.4-28)/55.4) 이고, Strip간의 간격이 29.57 이니까 횡중복도는 60% ((73.9-29.57)/73.9) 로 잡혀있네요. 


아래쪽에 있는 Footprints를 눌러주면 아래와 같이 촬영되는 범위를 확인할 수 있습니다. 종중복도 50%, 횡중복도 60% 정도 되는 걸 확인할 수 있습니다.



종중복도/횡중복도를 조정하려면, 맨 아래에 [Advanced Options]를 누르고 [Grid Options] 탭을 누르면 아래와 같은 화면이 나옵니다. 여기에서 Overlap과 Sidelap을 조정하면 됩니다.



자신이 사용하는 카메라가 존재하지 않을 경우에는 [Camera Config] 탭에 들어가서 새로 생성할 수도 있습니다.


아래는 이와 같은 과정을 통해 생성된 자동 미션입니다. 촬영코스를 볼 수 있고... Waypoints에 보면 DO_SET_CAM_TRIG_DIST 가 11.38미터로 설정되어 있음을 알 수 있습니다. 



이렇게 하면 대충 어렵지 않게 촬영계획을 세울 수 있을 것 같습니다. 이제 이거 가지고 다시 촬영을 나가봐야겠네요.


민, 푸른하늘

====

개요


카메라 촬영계획을 세우는 것은 웨이포인트와 이벤트가 포함된 다른 미션 계획을 세우는 것과 동일 하다. 단 하나의 차이는 웨이포인트에서 카메라 셔터를 터뜨리는 명령을 지정하거나, 기체의 이동에 따라 정해진 간격으로 촬영하도록 하는 명령을 넣는다는 것이다. 카메라에 짐벌이 달려있을 경우, 짐벌의 방향을 지정하거나, 특정한 지점을 추적하도록 할 수도 있다.


간단한 임무의 경우, 원하는 웨이포인트와 카메라 명령을 직접 지정할 수도 있다. 좀더 복잡하거나, 격자형식으로 촬영해야 할 경우, 임의의 지역에 대해 자동적으로 필요한 임무를 생성해주는 도구를 사용할 수 있다.


이 문서는 사용가능한 카메라 명령 및 짐벌 명령에 대해 설명한다. 아울러 미션 플래너에서 제공하는 자동미션 및 이를 이용하여 복잡한 측량용 사진을 촬영하는 방법에 대해 설명한다.


카메라 명령


  • DO_SET_CAM_TRIGG_DIST — 일정한 간격으로 카메라 셔터를 터뜨린다. 넓은 지역의 촬영에는 이 명령이 가장 널리 사용된다.
  • DO_DIGICAM_CONTROL — 이 명령이 지정될 때마다 셔터가 한번 터진다. 


Camera gimbal commands


카메라 짐벌을 사용할 경우, 카메라의 위치(yaw, tilt, roll) 및 특정한 관심지역(ROI)를 바라보도록 지정할 수 있다.

  • DO_SET_ROI — 카메라를 특정한 관심지점(위치, 높이 포함)을 향하도록 지정한다.
  • DO_MOUNT_CONTROL — 짐벌을 원하는 각도를 바라보도록 지정한다.


서보 및 릴레이 명령


서보 와 릴레이 출력을 하드웨어에 연결한 후, 미션중에 DO_SET_SERVO 또는 DO_SET_RELAY 명령을 사용하여 활성화 시킬 수 있다.


이러한 출력을 사용하면 카메라 셔터 외의 다른 카메라 기능을 제어할 수도 있다.(예를 들어, 줌을 조절하거나 사진에서 비디오 모드로 변경 등)


참고 : 서보나 릴레이에 카메라를 연결하는 방법이나 제공되는 기능 등은 카메라의 종류 및 지원되는 리모콘 메카니즘에 따라 달라진다. 무엇을 할 수 있는지는 CHDKStratosnapper 투토리얼을 참고할 것



자동임무 유형(Aut Mission Type)


미션플래너에는 다음과 같은 자동 웨이포인트 옵션이 있다. 이 명령을 사용하려면 Flight Plan 화면의 지도에서 마우스 우클릭을 한 다음 Auto WP 를 지정하면 된다.

  • Create WP Circle — 웨이포인트를 원형으로 생성
  • Area — 현재의 폴리곤(지정되어 있을 경우)의 면적을 보인다.
  • Create Spline Circle — 웨이포인트의 고도가 올라가는 형태의 spline Circle을 생성한다.??
  • Survey (Grid) — 지정된 폴리곤에 대해 자동적으로 웨이포인트와 카메라 제어명령을 생성한다.
  • Survey (Gridv2) — 아직 수행안됨! 직사각형 면적에 대해 보다 간단한 형태의 격자형 제어방식
  • SimpleGrid — 간단한 측량형 그리드. 카메라 콘트롤은 지정되지 않으므로 별도 추가 해야 함

====

이하 생략합니다.


민, 푸른하늘








Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

  1. 도와주세요

    저는 pixhawk를 cannon s110이랑 연결해서 리모트 트리거를 연결하였는데, 어찌된 일인지 시험비행에서 survey mission으로 플래닝 후 비행을 하니 카메라가 작동을 하지 않네요. CAM_TRIGG_DIST는 지상에서 servo를 통해 정상적으로 작동중인데, way point넣어서 그 지점에서 사진을 찍고 싶은데 작동을 하지 않네요. 혹시 무엇을 점검해야 하나요?

    2017.05.12 11:14 [ ADDR : EDIT/ DEL : REPLY ]

드론/쿼드콥터2016. 3. 21. 17:38

엊그제 성공적인 시범비행 후, 그동안 미뤄왔던 걸 확인하기로 했습니다. 바로 진동측정입니다. 


이제까지 진동측정을 해보지 못한 것은 몇 분 정도 계속 비행을 한 데이터가 있어야 했기 때문이었습니다.


사실 Pixhawk를 설치할 때 지침에 따랐기 때문에 진동은 그다지 문제가 되지 않을 것이라고 생각했지만, 그래도 한번도 해보지 않았기 때문에 조금 찜찜헀었습니다.


이 글은 Copter 문서를 기반으로 해서 필요한 부분만 정리한 것인데, 데이터 분석 부분은 제가 실제로 날린 데이터를 사용했습니다.


참고 : 진동 측정 문서는 새로 정리했습니다. 새로운 내용이 조금 추가된 듯 합니다. 이 글과 함께 새로 번역한 문서도 참고하시기 바랍니다.

====

비행콘트롤러는 진동에 민감합니다. 가속도계가 기체의 위치를 측정할 때 사용되는데, (기압계 및 GPS 도 함께) 진동이 크게 되면 정확한 위치를 기반으로 하는 모드의 성능이 떨어지게 됩니다. 진동은 모든 종류의 기체에 영향을 미치지만, 그중에서도 Copter가 가장 심각하게 발생합니다. 또한 AltHold, Loiter, Guided, Postion, Auto 등의 모드에 영향을 많이 미칩니다.


진동 수준 체크방법


우선 몇분 정도 이상 비행한 데이타가 필요합니다. 비행후, dataflash 에 들어 있는 로그를 다운로드 받아야 하는데, 여러가지 방법이 있지만, 그냥 Pixhawk의 MicroSD 카드를 PC에 꽂아서 복사하는 게 가장 간편합니다.



이중 맨 마지막 파일 (50.BIN)이 최종 비행에서 기록된 로그입니다. 이 파일을 아래의 위치에 복사해 줍니다. (로그파일 기본 저장장소임. 다른 곳도 무방함)


...\Mission Planner\logs\QUADROTOR\1


FLIGHT DATA 화면으로 들어가서 아래 DataFlash Logs를 클릭하고, PX4 .Bin to .Log 를 누르면 이 파일(.BIN)이 비행 로그(.LOG) 형식으로 변환됩니다.



그 다음 [Review a Log]를 누르면 다음과 같은 화면이 뜨게 됩니다.



진동을 분석하기 위해서는 오른쪽 아래에 있는 항목 리스트에서 VIBE 를 확장시키고 Vibe_X, Vibe_Y, Vibe_Z를 선택해 줍니다. 선택할 때마다 해당 데이터가 그래프로 표시됩니다. 



위 그림은 제 시험비행에서 사용한 데이터입니다. 이 그림에서 Vibe_X(빨강), Vibe_Y(초록)는 작은 값이나, Vibe_Z(파랑)은 값이 큼을 알 수 있습니다. 대략적으로 평균이 15 m/s/s 정도이고 최대 30 내외인데, 이 정도는 허용 가능한 정도라고 합니다. (최대값이 60 m/s/s 를 초과하면 안됨)


그 다음 CLIP0, CLIP1, CLIP2를 클릭해서 그래프를 그려봅니다. 이 값들은 가속도계 중 하나가 최대값(16G)에 도달하면 약간씩 누적 증가하게 되는 값입니다. 비행중 0을 유지하는 게 가장 좋으나, 100이하라면 괜찮음.  저의 경우에는 아래에서 보는 것과 같이 3개 모두 0을 유지했습니다.



====

아래는 진동에 문제가 있는 경우 볼 수 있는 그래프입니다.(Copter 문서에서 가져온 그림입니다.) 이러한 경우에는 별도의 Damping 조치가 필요합니다.



이상입니다. 선이 얼기설기 엉켜 있어서 사실 약간 걱정되기도 했는데, 문제가 없다고 하니 기분이 좋네요. ㅎㅎㅎ


민, 푸른하늘



Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 3. 21. 11:37

OpenDroneMap을 사용하기로 했습니다. 별다른 이유는 없습니다. 그동안 많이 들어왔는데, 때마침 며칠전 Windows에서 OpenDroneMap 실행이란 글이 올라왔기 때문입니다.


그래서 당장 실행에 옮겼습니다. 그런데 시작부터 막히더군요. OpenDroneMap은 Ubuntu 상에서 동작하도록 만들어졌기에 윈도우 상에서의 직접 실행은 불가능해서 별도로 가상머신에 Ubuntu를 설치하고 동작시키면 실행 가능하다고 하는데, 가상머신 설치부터 문제가 되었던 겁니다.


즉 첫번째 화면에 있는 것처럼, 제 컴퓨터가 가상화가 가능한지 확인해봤더니, 아래와 같이 떡 하니 불가능이라고 나온 겁니다.



그래서 구글에서 "hp Ellitedesk 800 enable virtualization in bios"로 검색을 해봤습니다. 당연히 답이 있었구요,



두번째/세번째 옵션을 켜주었더니 해결이 되었습니다.


그 다음엔 docker toolbox를 다운로드 받고, 설치해줬습니다. 그냥 next만 계속 눌러서 설치했습니다.



그 다음엔 샘플데이터 설치. ODM 샘플데이터중에서 boruszyn 에 들어가 오른쪽 위에 있는 [Download Zip]을 눌러 다운로드 받습니다.


이 샘플데이터를 C:\Users\user 에 풀어 넣습니다.



그 다음 docker virtual machine 을 만들 차례입니다. cmd 창에서 아래 명령을 넣어주면 됩니다.


docker-machine create --driver virtualbox odm
docker-machine ls


그런데... 회사 컴퓨터에서는 여러번 시행해봐도 계속 에러가 발생하네요. "Waiting for an IP..." 라는 글이 나오고는 감감 무소식... 모두 지우고 새로 설치해 봐도 그대로... 계속 놓아두었더니 30분 이상 경과되고 나서 무슨 에러가 잔뜩 나오더군요.


그래서 혹시나 집에 있는 컴퓨터에 설치를 했습니다. 집에 있는 컴퓨터는 ASUS 보드를 사용하고 있어서 ASUS enable virtualization로 검색을 했더니 역시 답이 있었습니다. Advanced Mode -> Advanced -> CPU Configuration -> Intel Virtualization Technolgy 에서 Disable 을 Enable로 바꿔주면 됩니다.



그 다음엔... 머... 아무 문제 없이 설치가 되었습니다.



그리고 나서는 원 문서에 있는 순서대로만 입력했습니다. 문제 없이 돌아갔고요... 시간이 생각보다 많이 걸리는군요. 일단, 아래 파일은 처음 docker virtual machine 생성때부터 화면에 출력된 모든 것을 그대로 저장한 것입니다.


아래는 저녁에 돌려뒀다가 아침에 나온 Log를 복사해 둔 것입니다. 그런데 열어보면 아시겠지만, 앞부분은 날라가고 없습니다. 아마도 저장되는 글자수가 정해져 있나봅니다.


docker_odm_sample.txt


그보다 문제는... 그 txt 파일의 맨 아래쪽을 보면 kill process 어쩌고 저쩌고가 나옵니다. 정상적으로 수행되지 못했다는 겁니다. OpenDroneMap wiki 의 Output & Results 부분을 봤을 때에, 제 컴퓨터에 저장된 파일이 일부 존재하지 않고요. 


무슨 에러가 발생했는지 잘 모르겠네요. 제 실행디렉토리가 SSD인데, 용량이 부족한 게 아닐까... 하고 의심이 되는데, 아무튼 현재 상태로는 더 이상 진행이 힘들 것 같습니다. 


다른 도구들을 좀 더 둘러본 뒤 다시 봐야겠네요.


민, 푸른하늘

Posted by 푸른하늘 푸른하늘이

댓글을 달아 주세요