'클린플라이트'에 해당되는 글 43건

  1. 2016.09.20 클린플라이트 설정 - PID 튜닝 - PID Tuning
  2. 2016.09.20 클린플라이트 설정 - 원샷 - Oneshot
  3. 2016.09.20 클린플라이트 설정 - 보드 - SPRacing F3 Evo
  4. 2016.09.20 클린플라이트 설정 - 믹서 - Mixer
  5. 2016.09.20 클린플라이트 설정 - 보드 - Chebuzz F3
  6. 2016.09.20 클린플라이트 설정 - 보드 - Olimexino
  7. 2016.09.20 클린플라이트 설정 - 보드 - CJMCU
  8. 2016.09.20 클린플라이트 설정 - 보드 - CC3D
  9. 2016.09.20 클린플라이트 설정 - 보드 - AlienFlight
  10. 2016.09.20 클린플라이트 설정 - 보드 - Paris Air Hero 32 / Acro Naze 32 Mini
  11. 2016.09.20 클린플라이트 설정 - 보드 - AbuseMark Naze32
  12. 2016.09.20 클린플라이트 설정 - 보드 - RMRC DoDo
  13. 2016.09.19 클린플라이트 설정 - 보드 - MotorLab
  14. 2016.09.19 클린플라이트 설정 - 보드 - Sparky
  15. 2016.09.19 클린플라이트 설정 - 보드 - TBS Colibri RACE
  16. 2016.09.19 클린플라이트 설정 - 보드 - Board - Seriously Pro SP Racing F3
  17. 2016.09.18 클린플라이트 설정 - 보드 - Seriously Pro SP Racing F3 Mini
  18. 2016.09.18 클린플라이트 설정 - 비행 콘트롤러 하드웨어 - Flight Controller Hardware
  19. 2016.09.18 클린프라이트 설정 - Baseflight에서 전환하기 - Migrating from baseflight
  20. 2016.09.16 클린플라이트 설정 - 블랙박스 비행데이터 기록기 - Blackbox flight data recoder
  21. 2016.09.13 클린플라이트 설정 - G튜닝 사용법 - G tune instructions
  22. 2016.09.13 클린플라이트 설정 - 제어 - Controls
  23. 2016.09.12 클린플라이트 설정 - 비행중 조정 - In-flight Adjustments
  24. 2016.09.12 클린플라이트 설정 - 비행 모드 - Modes
  25. 2016.09.11 클린플라이트 설정 - 프로필 - Profiles
  26. 2016.09.11 클린플라이트 설정 - 초음파 센서 - Sonar
  27. 2016.09.09 클린플라이트 설정 - 부저 - Buzzer
  28. 2016.09.09 클린플라이트 설정 - 디스플레이 - Display
  29. 2016.09.09 클린플라이트 설정 - 띠형 LED - LED Strip
  30. 2016.09.09 클린플라이트 설정 - 텔레메트리 - Telemetry
드론/쿼드콥터2016. 9. 20. 17:15

PID 튜닝 (PID Tuning)

비행역학의 모든 면은 선택된 "PID 제어기(controller)"에 의해 제어됩니다. PID 제어기란 조종간 입력에 대한 반응과, 자이로/가속도계(비행모드에 따라 달라짐)를 사용하여 공중에서 기체를 안정화시키는데 책임을 맡고있는 알고리듬입니다.

"PIDs"란 PID제어기의 작동을 제어하는 여러가지 튜닝 변수의 집합입니다. 최적의 PID 설정은 매 기체에 따라 다르므로, 정확한 세팅값을 공유해줄수 있는 사람이 없다면 최고의 성능을 발휘하는 PID 설정을 찾으려면 시행착오를 겪어야 합니다. 

아래의 비디오는 PID 설정에 의해 야기될 수 있는 여러가지 비행 문제를 인식하고 바로잡는 방법을 다루고 있습니다.

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

기본적으로 PID 제어기의 목표는 세개의 축에 따른 기체의 회전률을 조종간으로 입력하는 명령의 비율로 가져오자는 것입니다. ?? 목표 회전률과 자이로스코프로 측정한 실제 회전률의 차가 오류가 되며, 제어기는 이 에러를 0으로 만드는 게 목표입니다.

PID 변수(PIDs)

P 항(P Term)은 기체를 목표각 또는 목표 회전각 방향으로 향하도록하는 보정량의 강도를 제어합니다. P 항이 너무 낮으면 기체를 제어하기 힘듧니다. 안정을 유지할 만큼 빠르게 반응할 수 없기 때문입니다. P 항이 너무 높으면 기체는 빠르게 진동 또는 흔들립니다. 끊임없이 목표를 넘어서게(Overshoot) 되기 때문입니다.

I 항(I Term)은 크기가 작지만 오래 지속되는 오류를 보정합니다. 너무 낮게 설정되면 기체의 자세가 천천히 흐르게 됩니다. 너무 높게 설정되면 기체가 진동합니다. (하지만, P를 높게 설정한 것에 비해 진동 속도는 떨어집니다.)

The D term attempts to increase system stability by monitoring the rate of change in the error. If the error is rapidly converging to zero, the D term causes the strength of the correction to be backed off in order to avoid overshooting the target.

D 항(D Term)은 오류의 변화율을 감시함으로써 시스템의 안성성을 높이고자 시도합니다. 오류가 급격하게 0에 수렴하면, D 항은 목표에 Overhoot 가 발생하지 않도록 교정 강도를 낮추게 됩니다.

TPA 와 TPA 중단점

TPA stands for Throttle PID Attenuation and according to AlexYork.net:

TPA는 Throttle PID 감쇠(Throttle PID Attenuation)의 약자로서 AlexYork.net 에 따르면 

"TPA basically allows an aggressively tuned multi-rotor (one that feels very locked in) to reduce its PID gains when throttle is applied beyond the TPA threshold/breakpoint in order to eliminate fast oscillations.."

"TPA는 기본적으로 공격적으로 튜닝된 멀티로터(locked in 된 것처럼 느껴지는 것)에 throttle이 TPA 한계/중단점 이상으로 적용될 때 빠른 진동을 막고자 PID 이득(gain)을 낮추도록 한다..." 

참고로 TPA는 CLI 나, GUI의 PID 튜닝 탭에서 설정할 수 있습니다. [tpa_breakpoint]는 CLI를 통해 설정됩니다.

아울러 TPA와 tpa_breakpoint 는 어떤 PID 제어기에는 사용할 수 없을 수 있습니다. 이에 대해서는 개별 제어기에 대한 설명을 확인해 보세요.

TPA는 throttle이 최대일 때와 관련하여 PID값 감소를 적용합니다. 이는 throttle이 최대에 가까와지면 PID 값을 약화시키는 데 사용됩니다.

TPA = throttle 최대시 발생하는 약화율 (%)

tpa_breakpoint = TPA가 적용되기 시작하는 throttle curve상의 지점

An Example: With TPA = 50 (or .5 in the GUI) and tpa_breakpoint = 1500 (assumed throttle range 1000 - 2000)

예 : TPA=50 (GUI에서는 0.5)이고 tpa_breakpoint = 1500일 때(throttle 범위가 1000-2000이라고 가정)

  • throttle 채널이 1500이 되면, PID 변수가 약화되기 시작합니다.
  • At 3/4 throttle (1750), PIDs are reduced by approximately 25% (half way between 1500 and 2000 the dampening will be 50% of the total TPA value of 50% in this example)
  • 3/4 throttle(1750)에서 PID 변수는 약 25% 정도 줄어듭니다. (이 예에서 1750은 1500과 2000의 중간이므로, 약화율이 50%가 되는데, 총 TPA 값이 50%이므로 25%가 됨)
  • 최대 throttle (2000)이 되면, 총 약화율은 TPA 값으로 적용됩니다. (이 예에서는 50%)
  • TPA can lead into increase of rotation rate when more throttle applied. You can get faster flips and rolls when more throttle applied due to coupling of PID's and rates. Only the PID controllers MWREWRITE and LUX are using a linear TPA implementation, where no rotation rates are affected when TPA is being used.
  • TPA는 throttle이 더 많이 적용되면 회전률의 증가로 이어질 수 있습니다. PID 변수와 비율의 결합으로 인하여 throttle의 저 많이 적용되면 filp 과 roll이 빨라질 수 있습니다. PID 제어기 중에서MWREWRTE 및 LUX 만이 선형 TPA 구현을 사용하므로, TPA가 사용되면 rotation rates는 더이상 적용되지 않습니다.???

TPA를 어떻게, 왜 사용하는가?

예를 들어 3/4 throttle에서 진동이 발생하기 시작했다면, [tpa_breakpoint = 1750] 혹은 이보다 낮은 값으로 설정합니다. (이 것은 throttle 범위가 1000-2000이라는 가정입니다.), 그리고 진동이 사라질 때까지 TPA 값을 높여주면 됩니다. 일반적으로 [tpa_breakpoint]를 진동이 발생하는 시점보다 약간 빠르게 설정함으로써, 진동을 낮추거나 제거할 수 있는 값으로 실험해보고 싶을 것입니다. ??? 

PID 제어기(PID Controller)

클린플라이트에는 3개의 PID 제어기가 내장되어 있으며, 각각 비행특성이 다릅니다. 각 제어기는 최적의 성능을 내기 위한 PID 설정값이 다르므로, 기체를 어떤 PID 제어기를 사용하여 튜닝했다면, 이 값들은 다른 제어기에는 올바르게 먹히지 않을 가능성이 높습니다. 클린플라이트 v1.13.0에서 MWREWRITE 와 LUX PID 콘트롤러는 (약간의 오차는 있지만,) 동일한 PID 설정을 공통으로 사용할 수 있도록 평활화되어 있었습니다. 

PID 제어기를 변경하려면 설정프로그램(Configurator)의 CLI 탭에서 [set pid_controller=x] 를 입력하면 됩니다. 여기에서 x는 사용하고자하는 제어기입니다. 먼저 여기에 있는 내용을 읽고 나서 시험해보시기 바랍니다.

참고로 오래전 버전의 클린플라이트는 6개의 PID 제어기가 있었습니다. 실험적인 혹은 오래된 제어기는 클린플라이트 버전 1.11.0 (API 버전 1.14.0) 부터 제거되었습니다.

PID 제어기 "MW23"

이 PID 제어기는 MultiWii 2.3(및 이후) 에 들어있던 PID 제어기를 직접 포팅한 것입니다.

이 알고리듬은 roll/pitch 와 yaw를 별도로 취급합니다. yaw 에 문제가 있는 사용자라면 이 제어기를 사용해 보시기 바랍니다.

HORIZON 모드와 ANGLE 모드에서 이 제어기는 LEVEL "P"와 "I" 설정을 사용하여, ACRO 비행모드에서 P와 I 설정이 roll 및 yaw 축에 적용되는 방법과 유사한 방법으로 자동레벨링 보정을 시행합니다. LEVEL "D" 항은 LEVEL "P"항에 의해 적용되는 최대 보정량을 제한하는 용도로 사용됩니다.

클린플라이트 1.12.0 부터 P_Level의 기본값을 90에서 20으로 변경하였습니다. MWREWRITE 가 기본 PID 제어기가 되었기 때문입니다. MW23을 사용한다면, P_Level 값을 90으로 변경한 뒤 날리기 바랍니다.

PID 제어기 "MWREWRITE"

MWREWRITE 제어기는 클린플라이트 v1.12.0 부터 기본 PID 제어기가 되었습니다.

이 제어기는 MultiWill 2.3에 있던 제어기보다 새로운 제어기입니다. 많은 사람들에 따르면 MWREWRITE는 성능이 더 좋으며, 예전 버전에 따라다녔던 문제를 수정하였습니다. 아울러 튜닝이 훨씬 쉬워졌고, 좀더 넓은 범위의 PID 값에도 관용을 보입니다.

ANGLE 모드에서 이 제어기는 LEVLE "P" PID 설정을 사용하여, 자동레벨 교정이 어느정도 강해야 하는지를 결정합니다.

클린플라이트 1.12.0 에서 [p_level]의 기본값이 20으로 변경되었습니다. 이는 MWREWRITE PID제어기에서 추천되는 값으로서, ANGLE 모드에서 안정적인 비행을 제공합니다. 예전의 기본값인 90 을 사용할 경우, 일부 사용자들은 매우 불안정한 비행을 경험했었습니다.

HORIZON 모드에서 이 제어기는 LEVEL "I" PID 설정을 사용하여, 자동레벨 교정을 얼마나 많이 적용해야 하는지 결정합니다. LEVEL "I" 항 : horizon 자동레벨의 강도. 설정프로그램에서 값 0.030은 [i_level]에서 3.0 과 동일합니다. LEVEL "D" 항 : horizon 천이의 강도. 이 값을 올리면 자동레벨링이 더 잘되고, 0로 설정하면 자동레벨링이 하나도 적용되지 않습니다. 아래의 HORIZON 모드 명령에 대한 설명을 확인하세요.

PID 제어기 "LUX"

LUX는 새로운, 부동소숫점 기반의 PID 제어기입니다. MW23 과 MWREWRITE는 정수 산술연산을 사용합니다. 정수로 연산할 경우, 8비트 기반의 MultiWii 콘트롤러에서도 빠르게 수행할 수 있었으나, 정확도는 떨어집니다.

클린플라이트 v1.13에서 PID 제어기 LUX 는 MWREWRITE와 동일한 PID 설정을 사용하도록 변경되었습니다.

이 제어기는 looptime의 차이를 보상하도록 시도하는 코드가 있어서, looptime 설정이 변경되었을 때 PID를 되돌릴 필요가 없습니다.

처음에는 HORIZON 모드에 약간의 문제가 있었고, ACRO 모드에서 느린 문제가 있었지만, nebbian 님이 v1.6.0에서 수정하였습니다.

LUX는 32비트 프로세서에 맞도록 설계되고, MultiWii에서 유래되지 않은 최초의 PID 제어기입니다.

ANGLE 모드동안 적용되는 자동레벨 보정 강도는 LEVEL "P" PID 항에 의해 제어됩니다. "P"항은 GUI에서 "LEVEL Proportional"로 표시되어 있습니다.(v1.13.0 이전에는 [level_angle]로 표시되어 있었습니다.) 이 항은 HORIZON 모드와 비교하여 ANGLE 모드에서 자동레벨 강도를 튜닝하는데 사용될 수 있습니다. 기본값은 5.0입니다.

HORIZON 모드동안 적용되는 자동레벨 보정강도는 LEVEL "I" PID 항에 의해 제어됩니다. "I" 항은 GUI에서 "LEVEL Integral"로 표시되어 있습니다.(v1.13.0 이전에는 [level_horizon]으로 표시되어 있었습니다.) 기본값은 3.0으로, HORIZON 모드는 ANGLE 모드에 비해 자동레벨을 약하게 적용합니다. 참고 : 현재 설정프로그램(Configurator)에는 버그가 있어서, 이들 변수를 100으로 나눈 값으로 표시합니다. 즉, 3.0 대신 0.03으로 보입니다.

Horizon 모드에서 자동레벨과 ACRO 행태간의 전이는 LEVEL "D" 항에 의해 제어됩니다. 이 항은 GUI에서 "LEVEL Derivative"로 표시되어 있습니다. (v1.13.0 이전에는 [sensitivity_horizon] 변수가 사용되었습니다.) 이것은 자동레벨이 적용되는 조종간 범위의 비율을 설정합니다. 작게 설정하면 더 넓은 범위를 자이로만 사용하여 비행하게 됩니다. 기본값은 75%입니다.

예를 들어, [sensitivity horizon]을 "100"으로 설정하면, 조종간이 중앙에 있을 때 자동레벨 강도가 100%가 적용되며, 조종간이 50%일때 자동레벨 강도가 50%가 적용되고, 조종간이 100%일때는 자동레벨이 0, 즉 적용되지 않습니다. sensitivity를 75로 내리면 조종간이 중앙에 있을 때 100% 자동레벨, 조종간 63%일때 50% 자동레벨, 조종간 74%부터는 자동레벨이 적용되지 않게됩니다.

자세한 사항은 HORIZON 모드 명령 부분의 설명을 보세요.

RC 비율, Pitch/Roll 비율(분리전에는 P/R rate),  Yaw 비율

RC 비율(RC rate)

Roll/Pitch/Yaw RC 조종간 입력에 대한 전반적인 승수(multiplier)d입니다.

PID 제어기 MW23의 경우, 조종간이 중앙 부근에 있을 때, 약간씩 움직일 때의 "느낌"을 설정하는 데 사용되었습니다. (RC Expo도 영향을 미칩니다.) PID 제어기 MWREWRITE와 LUX의 경우, 기본적으로 기본 조종간 민감도(baseline stick sensitivity)를 설정하는데 사용됩니다.

Pitch/Roll 비율 (Pitch and Roll rates)

PID 제어기 MW23의 경우, P/D 부분의 PID 오류항의 영향을 조종간이 중앙에서 멀어질수록 점차 감소합니다. 즉, Pitch 비율 혹은 Roll 비율을 0.3으로 두면, 조종간을 100%밀었을때 P/D항을 30%감소시킴으로서, 조종간이 90%이하일 경우 PID 제어기의 안정화효과를 가져오게 됩니다. 그 결과 회전 속도가 빨라집니다. 따라서 위에서 설명한 RC 비율로 조종간이 중앙부분에 있으 때의 제어 움직임 민감도를 설정하고, 스틱이 멀어질수록 회전속도를 훨씬 뻘리할 수 있습니다. 

PID 제어기 MWREWRITE와 LUX의 경우, Pitch/Roll 비율은 RC 비율과 마찬가지로 전반적인 조종간 민감도에 대한 승수(multiplier)이지만, roll과 pitch에 독립적으로 작용합니다. (난기류와 같은 외뷰효과에 대한) 안정성은 조종간이 양끝으로 가도 줄어들지 않습니다. 0로 설정하면 위의 RC비율로 설정한 조종간 민감도(stick sensitivity)를 증가시키지 않습니다. 높은 값으로 설정하면 전체 조종간 범위를 걸쳐 조종간 민감도를 증가시킵니다. 

Yaw 비율(Yaw rate)

PID 제어기 MWREWRITE와 LUX에서 Yaw 비율은 위와 같이 조종간 민감도 승수로 작용합니다.

필터(Filters)

[gyro_ldf]는 하드웨어 자이로 저대역 통과 필터(low pass filter)를 설정합니다. 0 또는 256으로 두면 gyro는 하드웨어 필터링을 최소한으로 사용하며, 지연이 최소화되어 내부 샘플속도가 최대한 빠르게(8kHz)됩니다. 숫자가 낮을 수록 필터링이 강해집니다. 필터링을 강하게 하면 자이로 신호의 노이즈를 감쇠시켜서 데이터를 PID 계손에 보내게 됩니다. 하지만 강한 필터링은 지연을 초래하여, 불안정과 반응성 저하로 이어질 수 있습니다. 필터링은 필요합니다. 특히 부피가 작고 빠르게 제동되는 ESC를 부착한 쿼드의 경우 "D" 항이 모터/프레임 노이즈가 모터의 과열을 가져올 수 있기 때문입니다. 188 이하로 설정할 경우, 자이로 샘플링은 내부적으로 1kHz 로 되고 지연이 더욱 커집니다. 반응성이 높아지기 때문에 빠른 샘플링이 좋지만, aliasing 잡음을 초래할 수 있습니다. 188로 설정하면 FC와 자이로가 1 kHz에서 동기화되어 ([gyro_sync]를 활성화시키고 코드에서 존재할 경우), aliasing이 많이 줄어들게 됩니다. 

[gyro_soft_ldf]는 IIR(Infinte Impulse Response: 무한 충동 반응) 소프트웨어 저대역 통과필터로, 원하는 주파수에 맞춰 설정할 수 있습니다. 0 이상의 값으로 설정하면 활성화됩니다. 이는 하드웨어 필터 이후에 작동하여(FC 코드에서) 노이드를 더 줄여줍니다. 두개의 필터를 모두 사용하면 하나만 사용할 때보다 cut 비율이 2배가 됩니다. [gyro_soft_ldf]를 [gyro_ldf] 보다 높은 값으로 설정하는 것은 그다지 의미가 없습니다. 일반적으로 소프트웨어 필터는 하드웨어 필터 비율의 반정도로 설정하여, 보다 높은 주파수의 차단을 강화한 후 PID 계산으로 보냅니다. 100Hz 이상의 주파수는 비행 콘트롤의 관점에서 우리에게 관심이 없습니다. - 이러한 주파수는 반드시 신호에서 제거한 후 PID 계산에 보내야 합니다.

[dterm_cut_hz] 는 원하는 주파수에 맞춰 설정할 수 있는 IIR 소프트웨어 저대역 통과 필터입니다. 이 필터는 [gyro_cut] 필터 이후 작동하며 특히 "D" 항 데이터에만 필터링합니다. D 항 데이터는 주파수에 의존적으로 주파수가 높을 수록 계산되는 D 항 값이 커집니다. 이 필터는 자이로 필터링에도 불구하고 D 항 잡음이 많이 남을 경우에 필요합니다. 전형적으로 이 필터는 상당히 낮게 설정할 필요가 있습니다. D 항 잡음이 일반 IIR 필터의 주요 문제이기 때문입니다. 단 너무 낮게 설정하면, D 항의 위상 천이(phase shift)로 인해 제어에 있어 불안정을 막아주는 D항의 효과를 감소시키므로, 변경할 때 신중할 필요가 있습니다. 이 필터의 값을 적절하게 최적화 하려면 블랙박스 기록이 필요합니다.

HORIZON 모드 명령(Horizon Mode Commands)

CLI 명령 [horizon_tilt_effect]와 [horizon_tile_mode]는 Horizon 비행모드에서 현재의 기울기(current inclination)가 자동 레벨에 미치는 효화를 제어합니다. (현재의 기울기는 기체가 수평에서 벗어난 피치와 롤 각도입니다. ?? The current inclination is the number of degrees of pitch or roll that the vehicle is away from level, whichever is greater)

[horizon_tilt_effect] : 현재의 경사도(tilt)가 HORIZON 비행 모드에서 자동레벨에 미치는 효과를 제어합니다. 큰 값으로 설정하면 기체가 기울어질 수록 자동 레벨을 줄이는 결과(좀더 "ACRO"에 가깝게) 를 가져옵니다. 기본값은 75로서, 회전은 크게하고 빠리게 전진하는 비행에서 좋은 성능을 발휘합니다. 0으로 설정하면 자동레벨의 강도는 조종간의 위치와는 완전히 독립적으로 됩니다.

[horizon_tilt_mode] SAFE|EXPERT: "horizon_tilt_effect"의 성능 모드를 설정합니다.

SAFE = 조종간이 중앙에 오면 레벨링이 항상 활성화됩니다. 조종간을 놓으면 자동 레벨이 활성화되므로, "안전한" 범위입니다. 따라서 기체가 뒤집혔을 때 (180도 회전) 조종간이 중앙으로 오면, 기체는 그 죽시 자동레벨이 적용되어 똑바로 평형을 잡습니다. (참고로 : 이와 같이 매우 빠르게 180도 자동레벨이 수행된 후에는 기체의 방향이 예측하지 못하게 될 수 있습니다.)

EXPERT :  뒤집어지면 레벨링이 완전히 꺼질 수 있습니다. : 이 범위에 있으면 기체의 기울기가 자동레벨을 완전히 "덮어쓸" 수 있습니다. 이 모드에서 "horizon_tilt_effect' 변수를 약 75 정도로 설정하면 기체는 뒤집히고. 이때 조종간이 중앙으로 오면 기체는 자동레벨이 되지 않습니다. 좀더 ACRO에 가까운 기동을 수행할 경우 (3D 모드 비행도) 이쪽이 더 바람직합니다. 

"horizon_tilt_effect" 와 "horizon_tilt_mode" 값은 각각의 프로필별로 분리되어 있으며, LUX 및 MWREWRITE를 위해 구현되었습니다.

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/PID%20tuning.md

Posted by 푸른하늘이

댓글을 달아 주세요

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

원샷(Oneshot)

원샷을 사용하면 비행콘트롤러와 ESC사이에 더빠르게 통신할 수 있습니다.

아래와 같은 두가지 방법이 있습니다.

  1. 125µs 와 250µs 사이로 변하는 신호를 사용합니다. ?? (일반 PWM 타이밍은 1000µs 에서 2000µs 정도)
  2. 비행콘트롤러 루프마다 한번의 "샷"을 보내며, 비행콘틀러가 필요한 모터 속도를 계산하자마자 이를 수행합니다.

지원되는 ESC

FlyDuino KISS의 ESC는 원래부터 Oneshot125 프로토콜을 사용할 수 있습니다. 단 한번의 납땜만 필요합니다. BLHeli rev13.0 도 Oneshot125를 지원하며, 추가적인 작업없이 ESC에 의해 자동적으로 선택됩니다.

지원되는 보드

Naze 보드는 지원되며, 여러가지 설정에서 이미 테스트 되었습니다.

CC3D 보드는 PPM 수신기로 테스트 했지만, 병렬식 PWM 수신기는 이 보드와 잘 안맞을 수 있습니다.

원샷 모드 활성화

원샷모드를 구성하려면 먼저 ESC의 전원을 꺼야 합니다.

이 단계에서 ESC를 원샷모드로 구성하는 게 좋습니다. (KISS ESC의 경우 JP1을 납땜합니다.)

USB 케이블을 보드에 연결하고, 크롬 GUI 앱을 사용하여 연결합니다.

CLI 탭에서 다음과 같이 입력합니다.

feature ONESHOT125
save

이제 ESC에 다시 전원을 넣으면 됩니다.

설정(Configuration)

원샷 ESC를 설정하는 절차는 다른 ESC와 동일합니다.

  1. ESC에 전원이 안들와 있는지 확인합니다.
  2. 보드를 USB 케이블로 연결하고, 모터 테스트 페이지로 들어갑니다.
  3. 주 슬라이더를 사용하여 모터 속도를 최대로 설정합니다.
  4. ESC에 전원을 공급합니다. 이때 삑 소리가 들립니다.
  5. 슬라이더를 클릭하여 모터 속도를 0으로 가져옵니다. ESC에서 (대부분의 경우 여러번) 삑 소리가 다시 들립니다. 
  6. ESC에서 전원을 차단합니다.
  7. ESC에 다시 전원을 연결하고, 모터 슬라이더를 움직여서 정상적으로 회전하는지 확인합니다.

참고 문헌

====

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

Posted by 푸른하늘이

댓글을 달아 주세요

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

SPRacing F3 Evo 보드

Seriously Pro Racing F3 Evo(SPRacingF3Evo)는 특별히 클린플라이트를 위해 설계된 첫번째 비행콘트롤러 보드의 진화된 모델입니다.

SeriouslyPro / SP Racing 또는 공식 리셀러를 통해 이 보드를 구입하면, 클린플라이트 개발에 도움이 됩니다. 이것이 Serious pro 보드가 존재하는 이유입니다. 공식 리셀러는 항상 SerouslyPro.com 웹사이트에 나열되어 있습니다.

상세한 내용은 아래 웹사이트를 방문하세요.

http://seriouslypro.com/spracingf3evo

하드웨어 기능(Hardware Feature)

  • 효율적인 비행 계산을 위한 하드웨어 부동소숫점 프로세서와 더 빠른 ARM-COrtex M4 코어를 장착한 차세대 STM32 F3 프로세서
  • 블랙박스 비행로그 기록기를 위한 MicroSD 카드 소켓 - 튜닝 최적화 및 설정 결과를 직접 볼 수 있음 (Acro 및 Delux)
  • 레이싱 무선중계기(transponder) 내장 - 레이싱시 켜기만 하면 lap time이 기록됨
  • 최신 가속도계, 자이로, 전자나침판 및 기압계/고도계 센서 기술 탑재
  • Wire up using using pin headers for all major connections for excellent crash-durability. Use either right-angled or straight pin-headers.
  • 탁월한 충돌 내구력을 위하여 모든 주요 연결부위에 pin headers를 이용하여 결선. 직각형(right angled) 또는 직선형(strait) pin-header를 사용
  • I/O 동시사용가능. 모든 기능을 동시에 사용가능. 예를 들어, USB + OSD + SmartPort + SBus + GPS + 띠형 LED + 배터리 모니터링 + 8 모터 를 한꺼번에 연결 가능 (초음파센서는 CF 1.14에서 지원 예정)
  • ESC 및 서보를 위한 8개의 PWM 출력선. 표준 pin header로 쉽게 결선할 수 있도록 배열
  • SBus, SumH, SumD, Spektrum 1024/2045, XBus 수신기를 직접 연결 지원. 외부 인버터(inverter) 불필요 (내장)
  • 3 pin through - hole JST-ZH 커넥터를 통해 3.3v Spektrum Satellite 수신기 직접 연결 지원
  • 전용 PPM 수신기 입력
  • 3 시리얼포트 - USB 소켓과 공유되지 않음
  • 텔레메트리 포트
  • 마이크로 USB 소켓
  • 프로그램가능 LED를 위한 전용 출력 - 방향잡기, 레이싱, 야간 비행에 최고 (현재 무선중계기(Transponer)와 둘중 하나만 사용가능)
  • 비행용 배터리가 필요없이 OLED 표시장치를 연결할 수 있는 전용 I2C 포트
  • 전압과 전류를 확인할 수 있는 배터리 모니터링
  • 수신신호강도(RSSI) 감시 (아날로그 또는 PWM)
  • 음향 경고 및 신호를 위한 부저 포트
  • 개발자가 사용하기 쉬운 디버깅용 포트(SWD)와 부트모드 선택, unbrickable bootloader.
  • 아주 깔끔한 결선 작업을 위한 대칭 설계
  • JST-SH sockets only for I2C, UART2 and SWD. UART2 also on through-hole pins.
  • I2C, UART2 와 SWD 만을 위한 JST-SH 소켓. UART2 also on through-hole pins.
  • USB 또는 시리얼포트를 통한 재설치(flash)
  • 다층적재가능형 설계 - OSD 및 전원분배기(PDB)와 통합할 때 최적
  • 표준 설치 - 표준 30.5mm 설치홀이 있는 36x36mm 보드
  • 3v, 5v 용 LED와, 쉬운 진단을 위한 Status??
  • 구리로 에칭한 Cleanflight 로고

시리얼 포트(Serial Ports)

ValueIdentifierRXTX5v TolerantNotes
1USART1PA10PA9YES2 through-hole pins. Use for connecting to OSD/GPS/BlueTooth.
2USART2PA15PA14 / SWCLKYESJST socket and PPM header. Use to connect to RX.
3USART3PB11 / AF7PB10 / AF7NOAvailable on 4 through-hole pins. 3.3V signals only ! Use for GPS, Spektrum Satellite RX, SmartPort Telemetry, HoTT telemetry, etc.
  • SWD와 USART2를 동시에 사용할 수 없습니다.
  • 시리얼 RX 수신기를 사용할 때, TXD(T2) 핀은 텔레메트리로 사용할 수 없습니다. UART3 TXD 를 사용하세요.
  • 소프트웨어 시리얼은 지원하지 않습니다.
  • Windows DFU Flushing은 Zadig(configurator를 보세요)가 필요합니다.

배치도(Pinouts)

상세 배치도는 매뉴얼에 들어 있습니다.

http://seriouslypro.com/files/SPRacingF3EVO-Manual-latest.pdf

IO_1

6 핀 IO_1 커넥터의 배치(RX_SERIAL 모드)는 아래와 같습니다.

PinFunctionNotes
1Ground
2VCC_INVoltage as-supplied by BEC.
3RX_SERIALEnable feature RX_SERIAL
4
5+V BATTERYVoltage as-supplied by Battery.
6-V BATTERYVoltage as-supplied by Battery.

RX_PPM 모드의 경우 IO_1 배치는 다음과 같습니다.

PinFunctionNotes
1Ground
2VCC_INVoltage as-supplied by BEC.
3RX_PPMEnable feature RX_PPM
4TELEMETRYEnable feature TELEMETRY
5+V BATTERYVoltage as-supplied by Battery.
6-V BATTERYVoltage as-supplied by Battery.

IO_2

TRANSPONDER 가 사용되고 IR 땜질 패드를 합선시킬 때 6 핀 IO_2 의 배치는 아래와 같습니다.

PinFunctionNotes
1IR-Short leg of the IR LED
2IR+Long leg of the IR LED
3CURRENTCurrent Sensor
4RSSIRSSI (PWM or Analog - select by solder pads)
5BUZZER+5V Source
6BUZZER-Buzzer signal

LEDSTRIP 이 사용되고 LED 납땜패드를 합선시켰을 때 6 핀 IO_2 커넥터의 배치는 아래와 같습니다.

inFunctionNotes
1
2LEDSTRIPWS2812 Ledstrip data
3CURRENTCurrent Sensor
4RSSIRSSI (PWM or Analog - select by solder pads)
5BUZZER+5V Source
6BUZZER-Buzzer signal

UART1

PinFunctionNotes
3TXD
4RXD

UART2/3

PinFunctionNotes
1Ground
2VCC_INVoltage as-supplied by BEC.
3TXD
4RXD

Spektrum Satellite

PinFunctionNotes
33.3V
2Ground
1RXD

I2C

PinFunctionNotes
1Ground
25.0vVoltage as-supplied by BEC OR USB, always on
3SCL
4SDA

SWD

이 포트는 UART2와 동시에 사용할 수 없습니다.

PinFunctionNotes
1Ground
2NRST
3SWDIO
4SWDCLK

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20SPRacingF3Evo.md


Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 20. 17:09

믹서(Mixer)

클린플라이트는 custom mixing외에도 여러가지 mixing 설정을 지원합니다. Mixer 설정은 기체를 제어하기 위해 서보와 모터가 어떻게 함께 작동하는지를 결정합니다.

설정(Configuration)

내장 믹싱 설정을 사용하려면, 크롬 설정프로그램 GUI를 사용합니다. GUI에는 여러가지 믹서 우ㅠ형이 그림으로 있어, 적절한 연결을 만드는 데 도움이 됩니다. GUI에 관한 더 많은 정보는 이 문서의 설정(Configuration) 부분을 보세요.

명령어 입력방식(CLI)으로 믹서 유형을 설정할 수도 있습니다.

  1. [mixer list] 를 사용하여 지원되는 믹서의 리스트를 살펴봅니다.
  2. 믹서를 선택합니다. 예를 들어 [select TRI]를 쓰면 TRI 믹서를 사용하게 됩니다.
  3. [save] 명령을 사용하여 변경된 내용을 저장합니다.

지원되는 믹서 유형 (Supported Mixer Types)

NameDescriptionMotorsServos
TRITricopterM1-M3S1
QUADPQuadcopter-PlusM1-M4None
QUADXQuadcopter-XM1-M4None
BIBicopter (left/right)M1-M2S1, S2
GIMBALGimbal controlN/AS1, S2
Y6Y6-copterM1-M6None
HEX6Hexacopter-PlusM1-M6None
FLYING_WINGFixed wing; elevonsM1S1, S2
Y4Y4-copterM1-M4None
HEX6XHexacopter-XM1-M6None
OCTOX8Octocopter-X (over/under)M1-M8None
OCTOFLATPOctocopter-FlatPlusM1-M8None
OCTOFLATXOctocopter-FlatXM1-M8None
AIRPLANEFixed wing; Ax2, R, EM1S1, S2, S3, S4
HELI_120_CCPM
HELI_90_DEG
VTAIL4Quadcopter with V-TailM1-M4N/A
HEX6HHexacopter-HM1-M6None
PPM_TO_SERVO
DUALCOPTERDualcopterM1-M2S1, S2
SINGLECOPTERConventional helicopterM1S1
ATAIL4Quadcopter with A-TailM1-M4N/A
CUSTOMUser-defined
CUSTOM AIRPLANEUser-defined airplaneM1-M2S1-S8
CUSTOM TRICOPTERUser-defined tricopter

서보 설정 (Servo Configuration)

CLI [servo] 명령을 사용하면 서보 출력 설정을 정의할 수 있스빈다. CLI mixer [smix] 명령은 믹서가 내부 FC 데이터 (RC 입력, PID 안정화 출력, 채널 포워딩 등)와 서보 출력를 매핑하는 방법을 제어할 수 있습니다.

채널 포워딩 (Channel Forwarding)

채널 포워딩을 사용하면, AUX 채널을 PWM 5-8번 핀을 통해 직접 서보로 전달할 수 있습니다. 이 기능을 사용하려면, GUI에서 features 탭에서 설정하거나, CLI 명령 [feature CHANNEL_FORWARDING]를 사용합니다. 이렇게 하려면 PPM 또는 또다른 시리얼 RC 프로토콜을 작동시켜야 하는데, 현재 NAZE 와 SPRACINGF3 target에서 지원됩니다. 참고로, NAZE target에서 LED 기능을 활성화시켰다면 AUX1-2는 PWM13-14로 매핑됩니다. 따라서, 예를 들어, 이 기능을 수신기로 부터 Naze AUX1 에서 활성화시켰다면 서보 명령으로서 PWM5로 전달될 것입니다.?? So for instance if you enable this feature on a Naze AUX1 from your receiver will automatically be forwarded to PWM5 as a servo signal.

cli [servo]

[servo <min> <max> <middle> <angleMin> <angleMax> <rate> <forwardFromChannel> ]

  • <min>, <max> - 서보값의 최대 최소. 단위 uS
  • <middle> - 포워딩하지 않을 때 중간값. 서보 믹서로부터 나온 값이 여기에 더해짐
  • <anglemin>, <anglemax> - 사용하지 않음
  • <rate> - 서보믹서나 짐벌 입력에서 온 값에 대한 비율, -100% .. 100%
  • <forwardfromchannel> - <middle> 대신 RC 채널 값을 기준값으로 사용함. 서보는 주어진 RC 채널을 따르되, 서보 믹서에서 온 보정값이 적용됨. <min>, <max>는 계속 존중됨

서보 필터링 (Servo Filtering)

서보에 저대역 통과필터를 활성화시킬 수 있습니다. 예를 들어 airframe 에서 structural modes?? 를 피하는데 유용할 수 있습니다.

설정 (Configuration)

현재 CLI를 통해서만 설정할 수 있습니다.

  1. [set servo_lowpass_freq = nnn]를 사용하여 cutoff 주파수를 선택합니다. 유효한 값은 10Hz 에서 400 Hz로, 2급(second order) 필터가 사용됩니다.
  2. [set servo_lowpass_enable = ON]을 사용하면 필터링을 활성화시킬 수 있습니다.

튜닝(Tuning)

아래는 필터 cutoff를 튜닝하는 방법중 하나입니다.

  1. 먼저 기체가 문제 있는 축에서 적어도 어느정도 자유롭게 이동할 수 있는지 확인합니다. 예를 들어, tricopter에서 yaw가 진동한다면, 콥터가 적어도 좌측 우측으로 몇도 정도 회전할 수 있지 확인합니다. 무게중심 인근 서스펜션이 이상적입니다. 다른 방법으로, 비록 튜닝이 약간 더 지루해질지라도 그냥 기체를 날리고, 없애고자하는 문제 상황을 촉발시켜봅니다. (Ensure your vehicle can move at least somewhat freely in the troublesome axis. For example, if you are having yaw oscillations on a tricopter, ensure that the copter is supported in a way that allows it to rotate left and right to at least some degree. Suspension near the CG is ideal. Alternatively, you can just fly the vehicle and trigger the problematic condition you are trying to eliminate, although tuning will be more tedious.)
  2. 기체의 평가하고자하는 축의 끝부분을 살짝 건드립니다. 의문시되는 서보를 움직이도록 직접 명령하는 것도 사용할 수 있습니다. tricopter 예에서는 꼬리쪽 봉의 끝을 옆쪽에서 밀어보거나, 송신기를 사용해 yaw 명령을 내립니다.
  3. 기체가 몇초 정도 흔들리거나, 계속해서 진동한다면, 필터 cutoff 주파수를 줄여야 합니다. [servo_lowpass_freq]의 값을 반으로 줄이고, 이전 단계를 반복합니다.
  4. 진동이 약 1초 이내에 줄어들거나, 아얘 나타나지 않으면 완료된 것입니다. 저장을 하시고 나가세요.

맞춤식 모터 믹싱(Custom Motor Mixing)

맞춤식 모터 믹싱을 사용하면 완전히 맞춤화된 모터 설정이 가능합니다. 각각의 모터는 해당 모터를 위한 맞춤식 믹싱 테이블로 정의되어야 합니다. 비행 콘트롤러의 무게중심을 기준으로 각 모터가 얼마나 가까운지를 반영해야 합니다. 무게중심에 가까운 모터는 멀리있는 모터보다 조금 움직이게 할 필요가 있습니다. (Custom motor mixing allows for completely customized motor configurations. Each motor must be defined with a custom mixing table for that motor. The mix must reflect how close each motor is with reference to the CG (Center of Gravity) of the flight controller. A motor closer to the CG of the flight controller will need to travel less distance than a motor further away.)

CLI에서 맞춤식 믹서를 설정하는 순서:

  1. [mixer custom] 명령으로 맞춤식 믹싱을 가능하게 합니다.
  2. [mmix reset] 을 사용하여, 기존의 맞춤식 믹싱을 삭제합니다.
  3. [mmix load <name>]을 사용하여 기존의 믹서를 불러올 수도 있습니다.
  4. 각각의 모터에 mmix 명령을 일으킵니다.

The mmix statement has the following syntax: 

mmix 문의 문법은 : mmix n THROTTLE ROLL PITCH YAW

믹싱테이블 변수정의
n

모터 ordering 번호

THROTTLE

Indicates how much throttle is mixed for this motor. All values used in current configurations are set to 1.0 (full throttle mixing), but other non-zero values may be used. Unused set to 0.0.

ROLL

Indicates how much roll authority this motor imparts to the roll of the flight controller. Accepts values nominally from -1.0 to 1.0.

PITCHIndicates the pitch authority this motor has over the flight controller. Also accepts values nominally from -1.0 to 1.0.
YAWIndicates the direction of the motor rotation in relationship with the flight controller. 1.0 = CCW -1.0 = CW.

참고 : mmix 명령은 활성화되지 않은 모터믹스를 보여줄 수도 있습니다. 맞춤식 모터 믹스는 막춤식 믹서를 사용하는 모델에 대해서만 활성화됩니다.

참고 : 모든 모터 번호가 0에서 시적하도록 설정해야 합니다. 이전의 모터번호에 대한 mmix 명령이 없을 경우, 명령이 무시됩니다. (믹서는 THROTTLE 값이 0인 첫번째에서 정지합니다.

맞춤식 서보 믹싱(Custom Servo Mixing)

(이하 생략합니다.)

===

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

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 20. 15:56

Chebuzz F3 보드

ChebuzzF3 보드는 "딸" 보드로 STM32F3Discovery의 바닥에 부착하여, pin header와 여러가지 FC 연결을 위한 포트를 제공합니다.

모든 연결은 multimeter를 사용하여 추적되며, 아래의 리비전에 사용되는 TauLabs 소스코드로 검증됩니다.

https://github.com/TauLabs/TauLabs/blob/816760dec2a20db7fb9ec1a505add240e696c31f/flight/targets/flyingf3/board-info/board_hw_defs.c

(이하 생략합니다.)

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20ChebuzzF3.md

이전글 : Olimexino 보드

다음글 : 없음

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 20. 15:47

Olimexino 보드

Olimexino는 저렴하고 널리 사용되는 개발용 보드입니다.

이 보드는 클린플라이트 개발용으로는 좋지 않습니다. 많은 핀들이 header pin으로 나오지 않기 때문입니다. 개발에 더 좋은 것은 Port103R, EUSTM32F103RB (F1), STM32F3Discovery (F3) 등입니다.

(이하 생략합니다)

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20Olimexino.md

이전글 : CJMCU 보드

다음글 : Chebuzz F3 보드

Posted by 푸른하늘이

댓글을 달아 주세요

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

CJMCU 보드

CJMCU 보드는 STM32F103기반의 아주작은(80mm) 보드로, 3축 지자게(compass)와 가속도계/자이로(MPU6050)을 포함하고 있습니다.

이 보드에는 USB-Serial 변환기가 없으므로, 외부 어댑터가 필요합니다.

Hardware revisions

Revision

참고사항

1

LED1에 의해 boot jumper pad 없음??. 파랑, 빨강 LED를 사용함

2

Boot jumper pad가 핀과 LED1 점퍼에 미리 납땜되어 있음. ???

초록 및 빨강 LED를 사용함

버전2 보드는 펌웨어 v1.4.0 이후만 지원합니다. 버전2 보드에 이전의 버전을 쓰려고 시도하지 마세요.

(이하 생략합니다.)

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20CJMCU.md

이전글 : CC3D 보드

다음글 : Olimexino 보드

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 20. 13:55

CC3D 보드

OpenPilot의 Copter Control 3D(약칭 CC3D)는 아크로바틱비행 또는 GPS기반의 자동주행에 맞체 좀더 튜닝된 보드입니다. CC3D는 MPU6000 SPI 기반의 가속도계/자이로 만을 사용합니다. 16MBit 기반의 EEPROM 칩을 탑재하고 있습니다. 6개의 포트에는 입력으로 표시되어 있고, 6개의 포트는 모터/서보 출력(각각 3개의 칩)으로 표시되어 있습디다.

이 보드에서 문제를 발견하시면 github issue tracker 를 통해 알려주시기 바랍니다.

이보드에는 프로세서에 직접 연결된 USB가 있습니다. Naze 와 Flip32와 같은 보드는 보드상에 USB - UART 어탭터가 있어, 이것이 프로세서의 시리얼 포트에 연결됩니다.

이 보드는 헥사콥터나 옥타콥터에는 사용할 수 없습니다.

트라이콥터나 고정익은 아직 테스트를 안해봤습니다. 사용해보시면 성공했는지 실패했는지 알려주세요.

(이하 생략합니다.)

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20CC3D.md

이전글 : AlienFlight 보드

다음글 : CJMCU 보드

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 20. 10:08

보드 - AlienFlight (ALIENFLIGHTF1 과 ALIENFLIGHTF3 가 대상)

AlienWii가 AlienFlight로 바꼈습니다. 목표는 여러가지 다양한 변종의 비행콘트롤러를 지원하기 위함입니다. 설계는 아래 사이트에서 볼 수 있습니다.

http://www.alienflight.com

모든 공개된 설계는 여러 사람들의 비행테스를 거쳤습니다. 여기에서는 비행콘트롤러를 공개하고, 숙련된 사용자나 RC vender들이 이 설계를 구현하게 하는 것이 목적입니다.

아래는 이 보드의 일반적인 하드웨어 사양입니다.

  • STM32F103CBT6 MCU (ALIENFLIGHTF1)
  • STM32F303CCT6 MCU (ALIENFLIGHTF3)
  • MPU6050/6500/9250 가속도계/자이로(/전자나침반) 센서
  • MPU 센서 interrupt는 모든 새로운 F3 설계를 위한 MCU에 연결되어 있으며, 펌웨어에서 활성화됩니다. ??
  • 4-8개의 4.2A-9.5A 브러쉬 ESC, 튼튼한 마이크로모터를 돌리기 위해 통합???
  • power 처리량을 최대로 올리기 위해 PCB에서 매우 넓은 traces. ???
  • USB 포트가 통합됨
  • (*) 외부 DSM2/DSMX sat 수신기 (예 Spektrum SAT, OrangeRx R100, Lemon RX, Deltang Rx31)를 위한 시리얼 연결
  • CPPM 입력
  • 수신기를 위한 접지 및 3.3V
  • 쉬운 바인딩을 위한 하드웨어 bind plug
  • 전선을 줄이고 깨끗하게 보이도록 모터는 가장자리에 연결
  • footprint 작음 ??
  • 1S 리포배터리로 직접 구동
  • 3.3V LDO 전원 정압기(오래된 제품)
  • 3.3V buck-boost 전원 변환기(모든 새로운 버전)
  • FPV를 위한 5V buck-boost 전원 변환기 (일부 버전)
  • LED를 사용한 배터리 체크(일부 ALIENFLIGHTF3 변형제품에만)

(*)Spektrum 호환형 DSM2 satellites는 즉시 지원니다.. DSMX sat은 기본값(DSM2, 11bit, 11ms)으로 DSM2 프로토콜로 작동됩니다.이는 최대한의 호환성을 확보하기 위함입니다. 최족의 연결을 위해서는 가지고 계신 수신기와 Satellite 수신기의 성능에 맞춰 설정을 변경하는 것이 좋습니다. 가능하다면 DSMX 프로토콜을 사용하세요. 신뢰성이 높다고 합니다. 아울러 추가 채널을 사용하려면 클린플라이트 설정프로그램에서 아래 두 변수를 변경하셔야 합니다.

set serialrx_provider = 1   (0 for 1024bit, 1 for 2048bit) 
set spektrum_sat_bind = 5

여러가지 바인드 모드에 대한 자세한 내용은 Spektrum Bind 문서를 확인하세요.

시리얼모드에서 Deltang 수신기는 다른 Spektrum satellite 수신기처럼 작동합니다. (10bit, 22ms) 바인드 절차만 다릅니다.

ALIENFLIGHTF1 핀 배치는 NAZE32 또는 관련있는 짝퉁(MW32, Flip32 등)과 매우 유사합니다. 하드웨어 bind pin는 41번핀(PB5)에 연결되어 있습니다. ALIENFLIGHTF3 핀 배치는 Sparky와 유사합니다. 하드웨어 bind pin은 25번핀(PB12)에 연결되어 있습니다. 새로운 AlienFlightF3 V2 설계는 센서가 SPI를 통해 연결되며, 핀 배치가 약간 다릅니다. 모든 AlienFlight/AlienWii F3 는 동일한 펌웨어로 작동되며, 펌웨어에서 하드웨어의 차이를 감지합니다.

AlienFlgiht 펌웨어는 ALIENFLIGHTF1 또는 ALIENFLIGHTF3 을 대상으로 제작되었습니다. 펑뭬어 이미지는 사용자에게 Plug & Play 경험을 주고자, alternative default setting으로 옵니다.?? 작은 쿼드콥터의 경우, 별도의 컴퓨터가 없이도 기체를 띄울 수 있습니다. 옥타콥터를 위한 미리 설정된 custom mixer 는 AlienFlight과 깔끔하게 직결할 수 있는 기본 설정의 일부입니다. ?? 이 Mixer는 CLI에서 "mixer custome"으로 활성화 시킬 수 있습니다. AlienFlight을 헥사콥터 혹은 옥타콥터에서 사용하려면 좀더 많은 튜닝이 필요합니다. 추가적인 설정변경은 CLI 또는 설정프로그램을 통해 수행할 수 있습니다.

펌웨어설치(Flashing the firmware)

펌웨어는 다른 FC와 마찬가지로 Cleanflight 설정프로그램으로 갱신할 수 있습니다. 모든 AlienFlight 보드는 부트 점퍼(boot jumper)가 있는데, 최초의 설치 혹은 망가진 펌웨어 재복구 등의 경우, 반드시 막아주어야 합니다.

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20AlienFlight.md

이전글 : Paris Air Hero 32 / Acro Naze 32 Mini 보드

다음글 : CC3D 보드

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 20. 10:00

Paris Air Hero 32 / Acro Naze 32 Mini 보드

이 보드들은 Naze32 보드와 동일한 펌웨어를 사용합니다.

센서(Sensors)

MPU6500 (SPI 인터페이스)

포트(Ports)

6 x 3핀 ESC / 서보출력 1 x 8핀 JST 커넥터 (PPM/PWM/UART2) 1 x 4핀 JST 커넥터 (UART3/I2C)

(이하 생략합니다.)

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20Paris%20Air%20Hero%2032.md

이전글 : AbuseMark Naze32 보드

다음글 : AlienFlight 보드

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 20. 09:34

AbuseMark Naze32 보드

Naze32의 목표는 모든 버전의 Naze 하드웨어를 지원하는 것입니다. 주요한 사람들이 Revition 4와 5를 사용하고 많이 날리고 있습니다. 예전 버전의 Naze 하드웨어는 문제가 있을 수 있으며, 문제가 발견되면 github issue tracker를 통해 알려주시면 감사하겠습니다.

(이하 생략합니다.)

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20Naze32.md

이전글 : RMRC DoDo 보드

다음글 : Paris Air Hero 32 / Acro Naze 32 Mini 보드

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 20. 09:14

RMRC DoDo 보드

RMRC DoDo 보드는 Ready Made RC에서 제작 판매하고 있습니다. CUP pin mapping 의 관점에서 볼 때, SPRacingF3 보드의 짝통입니다. (자세한 내용은 SPRacingF3 문서를 보세요.) 현재 하드웨어가 약간씩 다른 세가지 버전 (Rev. 1, 2, 3)가 존재합니다.

Revision 3 보드는 메모로를 128kB에서 256kB로 CPU를 변경하였습니다. 하지만 호환성 문제때문에 Cleanflight 는 128kB 만 지원하고 사용하비낟. 동일한 바이너리 코드를 모든 DODO 보드에서 사용할 수 있습니다.

하드웨어 특징(Hardware Features)

  • 128kB 또는 256kB 플래시 메모리(Rev 3만 256kB)를 장착한 STM32 F3 ARM Cortex-M 프로세서 
  • 저장을 위한 외부 플래시 메모리 2MB
  • MPU6050 가속도계/자이로 (Rev. 2: MPU6000)
  • BMP280 기압계
  • 전자나침반 센서는 없음
  • GPS, 텔레메트리, OSD 등에 사용할 수 있는 3개의 하드웨어 UART (+ software). 5v 사용가능
  • 내장 5V/0.5A BEC (2-6S 배터리에서 전원 공급) 외장 BEC/정압기 필요 없음
  • Spektrum satellite 수신기 등의 주변기기를 위한 내장 3.3V 정압기 
  • 표준 36x36mm 보드 (30.5mm 설치구멍) (CC3D/Naze32 등과 동일. 핀배치는 다름)

참고 : 초기버전에서는 부저 회로에 문제가 있었음

(이하 생략합니다)

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20RMDO.md

이전글 : MotorLab 보드

다음글 : AbuseMark Naze32 보드

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 19. 15:17

보드 - MotorLab

MOTOLAB build는 MotoLab에서 공급되는 STM32F3 기반의 보드를 지원하는 것이 목표입니다.

현재 .TornadoFC, CycloneFC, MotoF3 등이 해당됩니다.

CycloneFC 와 TornadoFC 에 대해서는 다음 글을 확인하세요.

http://www.rcgroups.com/forums/showpost.php?p=32330479&postcount=2

MotoF3 는 아래 글을 참고하세요.

http://www.rcgroups.com/forums/showpost.php?p=28508139&postcount=3

모든 보드는 STM32F303 를 사용하며, 다음과 같은 특징이 있습니다.

  • 플래시 메모리 256kB
  • 부동 소숫점 연산 코프로세서
  • 하드웨어 시리얼포트 UART 3개
  • 내장 USB phy를 사용하는 USB. 하드웨어 UART와 간섭이 없습니다.
  • 안정적인 전압 정압기
  • 고전압/고전류 부저/LED 출력
  • 시리얼 LED 인터페이스
  • 1/10 divider 비율의 저주파 필터링 VBAT 입력 
  • 저주파 필터링된 PWM 혹은 아날로그 RSSI 입력
  • 8개의 합선방지 PWM 출력. TornadoFC의 경우 5V buffering
  • 4S-호환가능한 switching regulator 내장 (CycloneFC and MotoF3)
  • 6S 리포 작업이 가능한 Pololu switching regulator 옵션의 직접 설치가능(TornadoFC)
  • 클린플라이트 설정프로그램(Configurator)을 통하여 BLHeli 기반의 ESC의 Pass-through 프로그래밍 및 설정

MotoF3는 4개의 ESC, 부저, 데이터 로그를 위한 2MB SPI flash를 위한 전원분배체계를 내장하고 있습니다.

(이하 생략합니다.)

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20MotoLab.md

이전글 : TBS Colibri RACE 보드

다음글 : RMRC DoDo 보드

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 19. 14:36

Sparky 보드

Sparky는 매우 저렴하면서도 매우 강력한 보드입니다.

  • 하드웨어 시리얼포트 3개
  • 시리얼포트 인버터가 내장되어 외부 인버터 없이도 S.BUS 수신기 연결 가능
  • USB (다른 시리얼포트와 동시에 사용 가능)
  • 10 PWM 출력
  • 전용 PPM/SerialRX 입력 핀
  • MPU9150 I2C 가속도계/자이로/전자나침반 사용
  • 기압계

revision 1 & 2 보드에 대해 테스트를 완료했습니다.

해야 할 일(TODO)

  • 디스플레이(Flex 포트를 통해)
  • SoftSerial - 하드웨어 시리얼포트가 3개가 있어 약간 중복되긴 하지만..
  • Airplane PWM mappings.

전압 및 전류 체크 (ADC 지원)

PWM9 핀을 활성화하면 전압 체크가 가능하며, PWM8 핀을 통해 전류도 체크할 수 있습니다. 전압 divider 와 전류 sensor는 외부적으로 연결해야 합니다. 이때 센서의 사양에 맞도록 [vbatscale] CLI 변수를 조정해야 합니다. 센서 하드웨어에 대한 자세한 사항은 아래 주소를 확인하세요.

https://github.com/TauLabs/TauLabs/wiki/User-Guide:-Battery-Configuration

(이하 생략합니다.)

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20Sparky.md

이전글 : 보드 - Seriously Pro SP Racing F3

다음글 : 보드 - MotoLab

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 19. 14:13

TBS Colibri RACE 보드

Colibri RACE는 STM32F3 기반 비행 콘트롤러로서, 특별히 TBS POWERCUBE multi rotor stack 과 작동하도록 설계되었습니다.

하드웨어 기능(Hardware Feature)

  • 뛰어난 성능을 위한 STM32F303 기반의 칩셋
  • PPM, SBUS, DSM, DSMX 입력(5V 와 3.3V 내부 BUS를 통해 공급됨) 별도의 인버터나 해킹 필요없음.
  • 6 개의 PWM ESC 출력 채널 (자동연결, 내부 BUS)
    • RGB 띠형 LED 지원 + 전원 관리
    • GPS를 위한 확장 포트 / 외부 전자나침반 / 압력 센서
    • 주변기기((Blackbox, FrSky telemetry 등)를 위한 UART 포트
    • R/C 및 부저를 위하여 Plug & Play 소켓 또는 납땜 패드(Solder pad)를 선택 가능
    • 5V 부저 출력
    • MPU6500 차세대 가속도계/자이로
    • 상태 LED 3개(DCDC pwr/ 3.3V pwr/ status)
    • 12V, 5V, VBat 공급을 위한 배터리 모니터링
    • 크기: 36mmx36mm (30.5mm 표준 raster)
    • 무게 : 4.4g

자세한 내용은 여기를 방문하세요.

(이하 생략합니다.)

===

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20ColibriRace.md

이전글 :  Seriously Pro SP Racing F3 보드

다음글 : 보드 - Motolab


Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 19. 11:35

보드 - Board - Seriously Pro SP Racing F3

Seriously Pro Racing F3(SPRacingF3) 는 특별히 클린플라이트를 위해 설계된 첫번째 비행콘트롤러 보드입니다.

SeriouslyPro / SP Racing 또는 공식 리셀러를 통해 이 보드를 구입하면, 클린플라이트 개발에 도움이 됩니다. 이것이 Serious pro 보드가 존재하는 이유입니다. 공식 리셀러는 항상 SerouslyPro.com 웹사이트에 나열되어 있습니다.

상세한 내용은 아래 웹사이트를 방문하세요.

http://seriouslypro.com/spracingf3

하드웨어 기능(Hardware Feature)

  • I/O 동시사용가능. 모든 기능을 동시에 사용가능. 예를 들어, OSD + SmartPort + SBus + GPS + 띠형 LED + 배터리 모니터링 + 초음파센서(Sonar) + 8 모터 를 한꺼번에 연결 가능
  • 대용량 블랙박스 비행로그 기록기 내장 - 튜닝 최적화 및 설정 결과를 직접 볼 수 있음 (Acro 및 Delux)
  • 효율적인 비행 계산을 위한 하드웨어 부동소숫점 프로세서와 더 빠른 ARM-COrtex M4 코어를 장착한 차세대 STM32 F3 프로세서
  • 적층 가능형 설계 - OSD 및 전원분배기(PDB)와 통합할 때 최적
  • ESC 및 서보 및 구식 수신기를 위한 16개의 PWM I/O 선.  8 개의 핀은 표준 pin header로 결선. 나머지 8개의 핀은 side mounted connectors 로 연결
  • SBus, SumH, SumD, Spektrum 1024/2048, XBus, PPM, PWM 수신기를 직접 연결 지원. 외부 인버터(inverter) 불필요 (내장)
  • 프로그램가능 LED를 위한 전용 출력 - 방향잡기, 레이싱, 야간 비행에 최고
  • 비행용 배터리가 필요없이 OLED 표시장치를 연결할 수 있는 전용 I2C 포트
  • 전압과 전류를 확인할 수 있는 배터리 모니터링
  • 음양 경고 및 신호를 위한 부저 포트
  • Solder pads in addition to connectors for Sonar, PPM, RSSI, Current, GPIO, LED Strip, 3.3v,\
  • 초음파센서, PPM, RSSI, 전류, GPIO, 띠형 LED, 3.3v 를 위한 커넥터와 별도의 납땜용 패드(solder pad)개발자가 사용하기 쉬운 디버깅용 포트(SWD)와 부트모드 선택, unbrickable bootloader.
  • 아주 깔끔한 결선 작업을 위한 대칭 설계
  • pin header, JST-SH 소켓 또는 납땜 패드(solder pad)를 이용한 결선. 직각형(right angled) 또는 직선형(strait) pin-header를 사용
  • 바람을 차단하기 쉽도록 보드 하단에 설치한 기압계

시리얼 포트(Serial Ports)

ValueIdentifierRXTX5v TolerantNotes
1USART1PA10PA9YESInternally connected to USB port via CP2102 IC. Also available on a USART1 JST connector and on through hole pins.
2USART2PA15PA14YESAvailable on USART2 JST port only.
3USART3PB11 / IO2_3PB10 / IO2_4NOAvailable on IO_2, USART3 JST port and through hole pins.
  • SWD와 USART2를 동시에 사용할 수 없습니다.
  • USART1 RX/TX에 무언가 연결되어 있으면 flashing 작업시 문제가 발생할 수 있습니다. 다른 기기는 전원을 끄거나 연결을 끊으세요.

배치도(Pinouts)

상세 배치도는 매뉴얼에 들어 있습니다.

http://seriouslypro.com/spracingf3#manual

IO_1

8 핀 IO_1 커넥터의 배치(RX_PARALLEL_PWM 모드)는 아래와 같습니다.

PinFunctionNotes
1Ground
2VCC_INVoltage as-supplied by BEC.
3RC_CH1
4RC_CH2
5RC_CH5
6RC_CH6
7LED_STRIPEnable feature LED_STRIP
8VCC3.3v output for LOW CURRENT application only

8 핀 IO_1 커넥터의 배치(RX_PPM/RX_SERIAL 모드)는 아래와 같습니다.

PinFunctionNotes
1Ground
2VCC_INVoltage as-supplied by BEC.
3RX_PPMEnable feature RX_PPM
4GPIO
5SoftSerial1_RX
6SoftSerial1_TX
7LED_STRIPEnable feature LED_STRIP
8VCC3.3v output for LOW CURRENT application only

IO_2

8 핀 IO_2 커넥터의 배치(RX_PARALLEL_PWM 모드)는 아래와 같습니다.

PinFunctionNotes
1Ground
2VCC_INVoltage as-supplied by BEC.
3RC_CH3
4RC_CH4
5RC_CH7/SONAR_TRIG
6RC_CH8/SONAR_ECHO
7ADC_1Current Sensor
8ADC_2RSSI

8 핀 IO_2 커넥터의 배치(RX_PPM/RX_SERIAL 모드)는 아래와 같습니다.

PinFunctionNotes
1Ground
2VCC_INVoltage as-supplied by BEC.
3RX_SERIALUART3 RX
4UART3_TX
5SONAR_TRIG/SoftSerial2_RXEnable feature SONAR/SOFTSERIAL
6SONAR_ECHO/SoftSerial2_TXEnable feature SONAR/SOFTSERIAL
7ADC_1Current Sensor
8ADC_2RSSI

UART1/2/3

PinFunctionNotes
1Ground
2VCC_INVoltage as-supplied by BEC.
3TXD
4RXD

I2C

PinFunctionNotes
1Ground
25.0vVoltage as-supplied by BEC OR USB, always on
3SCL
4SDA

SWD

PinFunctionNotes
1Ground
2NRST
3SWDIO
4SWDCLK

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20SPRacingF3.md

이전글 : Seriously Pro SP Racing F3 Mini 보드

다음글 :  TBS Colibri RACE 보드

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 18. 19:50

Seriously Pro SP Racing F3 Mini 보드

Seriously Pro Racing F3 Mini(SPRacingF3Mini) 는 특별히 클린플라이트를 위해 설계된 두번째 비행콘트롤러 보드입니다. 이 보드는 최신 클린플라이트의 기능을 모두 지원하는 유일한 FC이며, 표준 36x36mm 설치홀 뿐만 아니라, 미니프레임에서 설치할 수 있는 모든 기능을 갖춘 유일한 미니 보드입니다. 새로운 무선중계기(transponder) 기능을 갖추고 있어 현재 구입 가능한 유일하고도 진정한 레이싱 보드입니다.

완전한 기능을 지원하며 크기와 무게가 작아, USA 드론 규정을 만족하면서도 250g 이하의 드론에 장착하는데 최적입니다.

SeriouslyPro / SP Racing 또는 공식 리셀러를 통해 이 보드를 구입하면, 클린플라이트 개발에 도움이 됩니다. 이것이 Serious pro 보드가 존재하는 이유입니다. 공식 리셀러는 항상 SerouslyPro.com 웹사이트에 나열되어 있습니다.

상세한 내용은 아래 웹사이트를 방문하세요.

http://seriouslypro.com/spracingf3mini

하드웨어 기능(Hardware Features)

  • 효율적인 비행 계산을 위한 하드웨어 부동소숫점 프로세서와 더 빠른 ARM-COrtex M4 코어를 장착한 차세대 STM32 F3 프로세서
  • 블랙박스 비행로그 기록기를 위한 MicroSD_Card 소켓. 튜닝 최적화 및 설정 결과를 직접 볼 수 있음
  • 레이싱 무선중계기(Transponer) 내장 - 레이싱때 켜기만 하면 랩타임이 기록됨
  • FC, 수신기, 소형 서보에 전원을 공급할 수 있는 레귤레이터(BEC) 탑재
  • 최신의 가속도계, 자이로, 전자나침반, 기압계/고도계 기술을 장착
  • Skektrum Satellite 수신기 바인딩, USB boutlader 모드 활성화 또는 설정 재설정(resetting the configuration)에 사용할 수 있는 2개의 버튼 더 많은 기능이 추가될 예정!
  • 탁월한 충돌내구력을 위하여 모든 주요 연결부위에 pin headers를 이용하여 결선. 직각형(right angled) 또는 직선형(strait) pin-header를 사용
  • I/O 동시사용가능. 모든 기능을 동시에 사용가능. 예를 들어, USB + OSD + SmartPort + SBus + GPS + 띠형 LED + 배터리 모니터링 + 초음파센서 + 8 모터 를 한꺼번에 연결 가능
  • ESC 및 서보를 위한 8개의 PWM 출력선. 표준 pin header로 쉽게 결선할 수 있도록 배열
  • SBus, SumH, SumD, Spektrum 1024/2045, XBus 수신기를 직접 연결 지원. 외부 인버터(inverter) 불필요 (내장)
  • 3 pin through - hole JST-ZH 커넥터를 통해 3.3v Spektrum Satellite 수신기 직접 연결 지원
  • 1-5 채널 PWM 수신기*1 직접 연결 지원
  • 전용 PPM 수신기 입력
  • 3 시리얼포트 - USB 소켓과 공유되지 않음
  • 텔레메트리 포트 (pin header 또는 USART2 JST-SH 소켓을 통해)
  • 마이크로 USB 소켓
  • 프로그램가능 LED를 위한 전용 출력 - 방향잡기, 레이싱, 야간 비행에 최고 (현재 무선중계기(Transponer)와 둘중 하나만 사용가능)
  • 비행용 배터리가 필요없이 OLED 표시장치를 연결할 수 있는 전용 I2C 포트
  • 전압과 전류를 확인할 수 있는 배터리 모니터링
  • 수신신호강도(RSSI) 감시 (아날로그 또는 PWM)
  • 음향 경고 및 신호를 위한 부저 포트
  • 개발자가 사용하기 쉬운 디버깅용 포트(SWD)와 부트모드 선택, unbrickable bootloader.
  • 아주 깔끔한 결선 작업을 위한 대칭 설계
  • I2C/UART2 와 SWD 만을 위한 JST-SH 소켓
  • 바람을 차단하기 쉽도록 보드 하단에 설치한 기압계
  • USB 또는 시리얼포트를 통한 재설치(flash)
  • 다층적재가능형 설계 - OSD 및 전원분배기(PDB)와 통합할 때 최적
  • 모듈형 설계 - 보드 핵심부는 36x22mm 이지만, 표준 30.5mm 설치홀에도 설치할 수 있음
  • 3v, 5v 용 LED와, 쉬운 진단을 위한 Status??
  • 구리로 에칭한 Cleanflight 와 #RB 로고

*1 - PWM 수신기는 반드시 3.3v 출력을 사용해야 함. 멀티로터 모드에서만 작동됨. 모터출력 5-8 과 PPM 핀을 RC1-5 입력으로 사용 ???

핀배치도(Pinouts)

상세 배치도는 매뉴얼에 들어 있습니다.

http://seriouslypro.com/spracingf3mini#manual

주요부(Main Section)

주요부는 30.5mm 설치홀이 있는 보드의 직사각형 부분입니다.

왼쪽 면 IO (앞면에서 뒤로) Left Side IO (Front to Back)

PinFunctionNotes
1RX3Square Pad
2TX3Round Pad
3PWM8 / SoftSerial 1 RX / RC4Square Pad
4PWM7 / SoftSerial 1 TX / RC3Square Pad

PWM7과 PWM8의 왼쪽에는 2개의 핀이 더 있습니다. 왼쪽에서 오른쪽으로 GND, VIN PWM7/8 입니다. RX3의 오른쪽에는 구멍을 통해 2개가 있습니다. RX3와 2개의 구멍을 사용하여 Spektrum Satellite 3v 용 JST-ZH 커넥터를 부착합니다.

오른쪽 면 IO (앞면에서 뒷면으로) Right Side IO (Front to Back)

PinFunctionNotes
1RSSIRound Pad / PWM
2CURRENTRound Pad
3PWM6 / RC2Square Pad
4PWM5 / RC1Square Pad
5T1Round Pad
6R1Round Pad
75vRound Pad
8GNDRound Pad
95vRound Pad
10PPMSquare Pad

PWM5 및 PWM6 오른쪽에 2개의 핀이 더 있습니다. 왼쪽에서 오른쪽으로 PWM5/6, VIN, GND 입니다.

8/9/10 번 핀을 사용하면 표준 3핀 케이블로 PPM 수신기를 부착할 수 있습니다.  8/7/6 번 핀을 사용하면 표준 3핀 케리블로 SBus/SerialRX 수신기(5v)를 부착할 수 있습니다.

위쪽면 IO (왼쪽에서 오른쪽으로) Top IO(Left to Right)

PinFunctionNotes
1BATTERY -Round Pad
2BATTERY +Square Pad

최고 25V 까지 부착할 수 있습니다. 역방향 입력방지 회로가 없으니 주의하세요!

바닥 왼쪽 IO (왼쪽에서 오른쪽으로) Bottom Left IO (Left to Right)

텔레메트리/LED/IR 용입니다.

A 는 바닥쪽 줄(보드 경계쪽) B는 위쪽줄 입니다.

PinRowFunctionNotes
1ATELEMETRY / T2Square Pad
2AGNDRound Pad
3BVINSquare Pad (Suface)
4BLED_STRIP/IRRound Pad

바닥 오른쪽 IO(왼쪽에서 오른쪽으로) Bottom Right IO (Left to Right)

부저용입니다.

A 는 바닥쪽 줄(보드 경계쪽) B는 위쪽줄 입니다.

PinRowFunctionNotes
1ABUZZER -Round Pad
2AGNDSquare Pad
3B5vRound Pad (For Buzzer)
4B3.3vSquare Pad (Surface)

바닥 가운데 IO (왼쪽에서 오른쪽으로) Bottom Center IO (Left to Right)

ESC / 서보 용입니다.

A는 바닥쪽 줄(보드 경계쪽) B는 가운데 줄, C는 위쪽줄(보드 중심 방향) 입니다.

PinRowFunctionNotes
1AGNDRound Pad
2AGNDRound Pad
3AGNDRound Pad
4AGNDRound Pad
1BVINRound Pad
2BVINRound Pad
3BVINRound Pad
4BVINRound Pad
1CPWM1Square Pad (Suface)
2CPWM2Round Pad
3CPWM3Round Pad
4CPWM4Round Pad

바닥쪽 IO (더 아래쪽, 왼쪽에서 오른쪽) Bottom IO (Underside, left to right)

PadFunctionNotes
TRIGSONAR TRIGGERAlso Switch B, 3.3v signal only
ECHOSONAR ECHOAlso Switch A, 3.3v signal only

UART2

PinFunctionNotes
1Ground
25vVoltage as-supplied by BEC OR USB, always on
3TXD
4RXD

I2C

PinFunctionNotes
1Ground
25vVoltage as-supplied by BEC OR USB, always on
3SCL
4SDA

SWD

이 포트는 UART2와 동시에 사용할 수 없습니다.

PinFunctionNotes
1Ground
2NRST
3SWDIO
4SWDCLK

무선중계기 부(Transponder Section)

무선중계기 부는 race timing transponder system을 위해 최대 두개의 IR LED까지 부착할 수 있는 부분입니다. 필요에 따라 부착하지 않을 수도 있고, 메인보드 위 아래로 적층하거나, 케이블로 연결할 수도 있습니다.

무선중계기 부분은 작은 활성화 점퍼가 있어서, IR 무선중계기 기능을 사용하기 전에 반드시 납땜으로 붙여줘야 합니다.

바닥 왼쪽 및 오른쪽 무선중계기 IO - Bottom Left and Bottom Right Transponder IO (Left to Right)

LED/IR 용. 무선중계기 보드 설치구멍 옆에 4개의 핀이 사각형으로 배열되어 있습니다. 좌우측에 동일하게 배열되어 있며, 동일하므로, 어느쪽에 부착해도 무방합니다.

A는 바닥쪽 줄(보드 경계쪽) B는 위쪽줄(보드 중심 방향) 입니다.

PinRowFunctionNotes
1AN/CSquare Pad
2AGNDRound Pad
3B5vRound Pad
4BLED_STRIP/IRRound Pad

바닥 왼쪽 및 오른쪽 IR (Bottom Left and Bottom Right IR)

무선중계기(transponder) 부분의 좌측 우측에 각각 2개의 핀홀이 있습니다. either side of some surface mount components. 적외선 LED를 두개까지 부착할 수 있습니다. 

A는 바닥쪽 줄(보드 경계쪽) B는 위쪽줄(보드 중심 방향) 입니다.

PinRowFunctionNotes
1AIR+Round Pad
2BIR-Square Pad

참고 : 초기 생산물량 일부에서는 IR+ 과 IR- 이 반대로 인쇄되어 있습니다. 인쇄와 관계없이 이렇게 결선하면 됩니다.

스위치 부(Switch Section)

스위치 부 맨아래에는 4개의 pad가 있습니다. 스위치 부분은 4 way 케이블을 사용해 재배치하거나 주요부(Main section)에 재 부착할 수 있습니다.

Pad On Switch SectionPad on main section
AECHO
BTRIG
GNDAny GND
3v3Any 3.3v

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Board%20-%20SPRacingF3Mini.md

이전글 : 비행콘트롤러 하드웨어(Flight Controller Hardware)

다음글 : Seriously Pro SP Racing F3 보드

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 18. 17:36

비행 콘트롤러 하드웨어(Flight Controller Hardware)

현재의 초점은 STM32F303 과 구식 STM32F103 시리즈 프로세서를 사용하는 비행콘트롤러 하드웨어에 맞춰져 있습니다. 핵심 로직(core logic)이 하드웨어 드라이버와 분리되어 있으며, 다른 프로세서로 포팅하는 것도 가능합니다.

완전한 버전의 클린플라이트를 원한다면, STM32 F3 기반의 보드(플래시 메모리 256KB)를 구입하는 것을 추천합니다. F3 프로세서는 빠르고 USB 를 지원하고, 추가적인 어댑터나 케이블이 없이도 더 많은 하드웨어를 지원합니다.

추천하는 보드:

구식보드 :

클린플라이트는 다음과 같은 개발자용 보드에서도 작동됩니다.:

  • STM32F3Discovery - Recommended for developers.
  • Port103R - Recommended for F1 developers.
  • EUSTM32F103RB - Legacy.

다음 보드들도 한정적이지만 지원되지만, 사용자가 부족하거나 상업성이 떨어져 제거될 수 있습니다.

  • Olimexino
  • Naze32Pro
  • STM32F3Discovery with Chebuzz F3 shield.

참고 : EEPROM 이 256KB 이하인 CPU를 가진 보드는 구입하지 않으시는 게 좋습니다. 사용가능한 기능이 제한됩니다. 또한 하드웨어 개발자들도 256KB 이하의 EEPROM 공간을 가진 보드는 설계하지 않는 게 좋습니다.

각각의 보드는 장단점이 있습니다. 하드웨어 구입전 반드시 체크해야 할 것은 보드에 시리얼포트가 충분히 있으며, 사용하고자 하는 하드웨어를 위한 입출력핀이 존재하는지 동시에 사용할 수 있는지 등입니다. 일부 보드에서는 어떤 기능들의 경우 동시에 사용할 수 없습니다.

자세한 결선방법은 보드별 문서를 확인하시기 바랍니다.

STM32F4 프로세서를 지원하는 분기(off-shoots, forks) 프로젝트들도 있습니다. Revo 혹은 Quanton 보드가 그 예입니다.

보드별 문서에는 가능하다면 수신기나 부저와 같이 클린플라이트에 호환되는 기타 하드웨어에 대한 링크도 제공하고 있습니다.

===

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

이전글 : Baseflight에서 전환하기(Migrating from baseflight)

다음글 : Seriously Pro SP Racing F3 Mini

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 18. 16:57

Baseflight에서 전환하기(Migrating from baseflight)

절차(Procedure)

먼저 배터리를 분리하거나, 프롭을 제거하세요.

클린플라이트로 새로 깔기전, CLI 명령을 사용하여 각 프로필의 설정내용을 텍스트파일로 덤프받습니다.

profile 0
dump
profile 1
dump
profile 2
dump

그다음 클린플라이트를 설치한 후, dump 명령에서 나온 결과를 CLI에 붙여넣어주고, 사용하고자 하는 프로필로 바꿉니다.

이 작업을 하면 일부 명령이 Cleanflight에서 인식하지 못하는 것을 보시게 될 것입니다. 인식하지 못한 명령들은 새로운 설정옵션을 찾아보고, 적당한 설정값을 선택합니다. 아래는 차이가 있는 설정의 목록입니다.

첫번째 프로필에서 작업을 마치면 설정을 저장합니다. 그리고 기능들이나 시리얼포트등 설정이 맞는지 확인합니다. 첫번째 프로필이 문제가 없으면 다른 프로필들도 이를 반복합니다.

아룰러 baseflight 설정프로그램으로부터 AUX 설정을 화면캡쳐 해두면, Cleanflight 에서 설정한 후 AUX 설정이 맞는지 확인할 때 참고할 수 있습니다. AUX 설정은 역방향 호환성이 보장되지 않습니다.

baseflight 와 CLI 명령의 차이

일반적으로 모든 CLI 명령은 단어를 분리할 때 밑줄(underscore) 문자를 사용합니다. baseflight의 CLI 명령 포맷은 약간 일관성이 없습니다.

gps_baudrate

이유 : 새로운 시리얼프트 설정

[serial] 명령을 확인하세요.

gps_type

이유 : 일관성을 위해 gps_provider 로 변경

serialrx_type

이유 : 일관성을 위해 serialrx_provider 로 변경

rssi_aux_channel

이유 : 향상된 기능을 위해 rssi_channel로 변경

클린플라이트는 모든 RX 채널을 신호수신강도(rssi)용으로 사용할 수 있습니다. Baseflight는 AUX1 - AUX4 까지만 지원합니다.

클린플라이트에서 0 은 이 기능을 해제하는 용도이며, 1 이상의 값은 RSSI 정보를 읽어올 채널 번호를 나타냅니다.

예 : 클린플라이트에서 AUX1을 RSSI 용으로 사용하려면 [rssi_channel = 5] 로 설정합니다. 5가 최초의 AUX 채널이기 때문입니다. (Baseflight에서는 [set rssi_aux_channel = 1]에 해당합니다.)

failsafe_detect_threshold

이유 : 기능 향상

비상대책(Failsafe) 문서의 [rx_min_usec] and [rx_max_usec]을 보세요.

emfavoidance

이유 : 일관성을 위해 emf_avoidance 로 변경

yawrate

이유 : 일관성을 위해 yaw_rate 로 변경

yawdeadband

이유 : 일관성을 위해 yaw_deadband 로 변경

midrc

이유 : 일관성을 위해 mid_rc 로 변경

mincheck

이유 : 일관성을 위해 min_check 로 변경

maxcheck

이유 : 일관성을 위해 max_check 로 변경

minthrottle

이유 : 일관성을 위해 min_throttle 로 변경

maxthrottle

이유 : 일관성을 위해 max_throttle 로 변경

mincommand

이유 : 일관성을 위해 min_command 로 변경

deadband3d_low

이유 : 일관성을 위해 3d_deadband_low 로 변경

deadband3d_high

이유 : 일관성을 위해 3d_deadband_high 로 변경

deadband3d_throttle

이유 : 일관성을 위해 3d_deadband_throttle 로 변경

neutral3d

이유 : 일관성을 위해 3d_neutral 로 변경

alt_hold_throttle_neutral

이유 : 일관성을 위해 alt_hold_deadband 로 변경

gimbal_flags

이유 : 기능 분리

[gimbal_mode]와 [CHANNEL_FORWARDING] 기능을 보세요.

====

원문 : https://github.com/cleanflight/cleanflight/blob/master/docs/Migrating%20from%20baseflight.md

이전글 : 블랙박스 비행데이터 기록기(Blackbox flight data recoder)

다음글 : 비행 콘트롤러 하드웨어(Flight Controller Hardware)

Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터2016. 9. 16. 23:35

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

개요(Introduction)

이 기능은 모든 control loop iteration 상의 비행데이터 정보를 시리얼포트를 통해 OpenLog to be recorded 와 같은 외부 저장장치, 일부 비행콘트롤러에 존재하는 내장 데이터플래시 칩 또는 내장 SD 카드 소켓으로 전송합니다.

비행후에는 아래의 대화식 로그 뷰어(log viewer)를 사용하여 결과 로그를 볼 수 있습니다.

https://github.com/cleanflight/blackbox-log-viewer

아울러 블랙박스 해독 도구를 사용하여 로그를 해석용 CSV 파일로 변환하거나, 블랙박스 렌더링 도구를 사용하여 비행로그를 비디오로 생성할 수 있습니다. 이들 도구는 아래 저장소에 있습니다.

https://github.com/cleanflight/blackbox-tools

로그 데이터(Logged data)

블랙박스는 비행콘트롤 루프의 모든 반복(every iteration of the flight control loop) 마다 비행 데이터를 기록합니다. 블랙박스는 현재시간(ms), 각각의 축에 대한 P/I/D 보정, RC의 조종간 위치(expo 커브를 적용한 뒤), 자이로 데이터, 가속도계 데이터(low-pass filtering을 설정한 후), 기압계, 초음파 값, 3축 전자나침반 값, 원시 VBAT 및 현재 측정값, 신호수신강도(RSSI), 각각의 ESC에 보내진 명령 등을 기록합니다. 이들 자료는 근사치 혹은 정밀도 희생없이 완전히 기록되므로, 아주 미묘한 문제도 비행 데이터 로그로부터 탐지할 수 있습니다.

GPS 데이터는 새로운 GPS 데이터가 존재하면 기록됩니다. CSV 해독기가 이 데이터를 해독하지만, 비디오 생성기는 아직 GPS 정보는 전혀 표시하지 못합니다. (추후 추가 예정)

지원되는 콥터(Supported configurations)

비행로그에 기록될 수 있는 최대 데이터 속도는 상당히 제한적이어서, load가 증가되면 비행 로그에 프레임이 빠지거나 에러가 발생할 수 있습니다.

블랙박스는 일반적으로 트리콥터와 쿼드콥터에서 사용됩니다. 헥사콥터나 옥타콥터에서도 작동하지만, 기록해야 할 모터가 많아서 비행데이터로 전송할 데이터가 많습니다. 이로 인해 생략되는 프레임이 많습니다. 브라우저 기반의 로그 뷰어가 헥사/옥타 콥터를 지원하지만, 명령어기반 블렉박스 렌더링 도구는 현재 트리콥터와 쿼드콥터만 지원합니다.

클린플라이트의 looptime 설정이 비행로그에 저장되는 갱신 속도를 결정합니다. 클린플라이트의 looptime 기본값은 3500 입니다. looptime 설정을 2400 보다 작게 하면 전송 데이터가 많아 일부 프레임이 빠지게 되는 걸을 경험할 수도 있습니다. 그러한 경우 블랙박스 설정에서 sample rate를 줄이 거나, 로거의 baudrate를 25000으로 올릴 필요가 있습니다. 블랙박스 기능에 대한 설정에 대한 자세한 내용은 마지막 절을 참고하세요.

Setting up logging

먼저 블랙박스 기능을 활성화시켜야 합니다. 클린플라이트 설정프로그램에서 설정(Configuration) 탭으로 들어간 뒤, 페이지 맨 아래 쪽에 있는 "BLACKBOX" 기능을 체크하고, "Save and reboot"를 클릭합니다.

이제 비행로그를 어떤 장치에 저장할 지 결정해야 합니다. 로그 데이터를 시리얼포트를 통해 OpenLog serial data logger 와 같은 외부 저장장치를 사용하여 microSDHC 카드에 기록하거나, 호환가능한 비행콘트롤러가 있다면 로그를 내장 데이터플래시 저장장치에 저장할 수도 있습니다.

OpenLog serial data logger

OpenLog는 시리얼포트를 사용하여 비행콘트롤러에 부착하여, 비행 로그를 MicroSC 카드에 기록할 수 있는 소형 기록장치입니다.

OpenLog는 SkarkFun에서 표준 "OpenLog 3" 펌웨어를 설치하여 판매중입니다. 이 오리지널 OpenLog 펌웨어가 블랙박스와 잘 동작하기는 하지만, 빠지는 프레임의 수를 줄이기 위해서는 좀더 성능이 높은 OpenLog Blackbox 펌웨어로 재설치해야 합니다. OpenLog 펌웨어의 변종인 OpenLog Blackbox 펌웨어는 아울러, OpenLog가 클린플라이트 호환가능한 설정과 115200 baud를 기본값으로 하도록 확실하게 해줍니다.

블랙박스 버전의 OpenLog 펌웨어와 OpenLog에 설치하는 방법은 여기에서 찾을 수 있습니다.

microSDHC

어떤 microSDHC 카드를 쓰느냐는 시스템의 성능에 매우 중요합니다. OpenLog는 카드에 매우 작은 데이터를 지연없이 자주 기록할 수 있어야 하므로, 모든 카드가 가능하지 않습니다. SD-카드 속도가 등급이 높다고 하여 반드시 성능이 높다는 보장은 할 수 없습니다.

성능이 늦은 microSDHC 카드
  • Generic 4GB Class 4 microSDHC card - 프레임이 빠지는 비율이 약 1%로, 특히 가장 흥미로운 부분에 집중됩니다.
  • Sandisk Ultra 32GB (16GB 버전과는 달리 이 버전은 기록 지연이 매우 나쁩니다.)
성능이 확인된 microSDHC 카드
  • Transcend 16GB Class 10 UHS-I microSDHC (전형적인 오류율 < 0.1%)
  • Sandisk Extreme 16GB Class 10 UHS-I microSDHC (전형적인 오류율 < 0.1%)
  • Sandisk Ultra 16GB (이론적 성능의 절반뿐이 안되지만, it performs only half as well as the Extreme in theory, 그래도 좋은 편입니다.)

반드시 모든 카드는 SD Association의 특별 포맷 도구를 사용하여 포맷해야 합니다. OpenLog가 가장 높은 속도로 기록할 수있도록 보장해주기 때문입니다. FAT로 포맷해도 무방하지만, FAT32로 포맷하는 것을 추천합니다.

OpenLog를 위한 시리얼포트 선택

먼저 블랙박스를 (내장 플래시메모리가 아닌)시리얼포트를 통해 로그하도록 설정해야 합니다. 설정프로그램(Configurator)의 CLI 탭으로 들어가서 [set blackbox_device=SERIAL] 을 입력하고 저장합니다.

클린플라이트에서 어떤 시리얼포트를 OpenLog 에 (즉 블랙박스 포트) 연결할지 설정해야 합니다. 설정프로그램의 포트(Ports) 탭에서 설정할 수 있습니다.

이때 반드시 하드웨어 시리얼포트(예: Naze32의 중앙에 있는 2핀 Tx/Rx 헤더가 있는 UART1)를 사용해야 합니다. SoftSerial 포트로 사용할 수 있지만, 19200 baud로 제한 되어 있기 때문에, 로그 속도(logging rate)를 많이 줄여야 합니다. 따라서 SoftSerial 포트는 추천하지 않습니다.

하드웨어 시리얼 포트를 사용할 때, 블랙박스는 최소 115200 baud 이상으로 설정해야 합니다. looptime이 빠를 때(<2500)에는 최소한 250,000 이상으로 설정해야만 프레임이 빠지는 걸 줄일 수 있습니다.

블랙박스용 시리얼포트는 MSP 프로토콜외에 다른 기능(예: GPS, 텔레메트리)과 공유하면 안됩니다. MSP가 블랙박스와 동일한 포트를 사용하면, 보드의 시동이 꺼졌을 때만 MSP가 활성화되고, 시동이 켜지면 블랙박스가 활성화됩니다. 즉, 시동을 넣은 상태에서는 설정프로그램(Configurator)과 MSP가 필요한 다른 기능 (OSD, 블루투스 무선통신 설정 앱 등)을 사용할 수 없습니다.

시리얼포트의 "TX"핀을 OpenLog의 "RXI" 핀에 연결합니다. 시리얼포트의 RX 핀은 OpenLog에 연결해서는 안됩니다. 시동이 꺼졌을 때 해당 시리얼포트를 공유한 다른 기능과 간섭이 발생하기 때문입니다.

Naze32 시리얼포트 선택

Naze32에서 보드위쪽에 있는 TX/RX 핀은 UART1에 연결되어 있으며, USB 커넥터와 공유되어 있습니다. 따라서, USB를 통하여 설정프로그램을 사용하기 위해서는 MSP를 UART1에 대해 활성화시켜야 합니다. 블랙박스가 Naze32위에 있는 핀에 연결되면, 시동을 건 상태에서는 설정프로그램이 정지됩니다. 하지만, 시동이 걸린 상태에서 동일한 핀을 사용하는 OSD 가 설치되어 있지 않고, FrSky 텔레메트리를 사용하지 않는다면, 이 설정이 가장 좋은 방법입니다.

보드 아래쪽의 RC3 핀은 UART2의 Tx 핀입니다. 블랙박스를 UART2에 설정했다면, 시동이 걸렸을 때도 MSP를 UART1에서 사용할 수 있으며, 따라서 블랙박스와 함께 설정프로그램도 계속하여 사용할 수 있습니다. 참고로 병렬식 PWM(PARALLEL_PWM) 모드에서는 입력채널이 6개인 보드의 경우, RC3/RC4 핀이 UART2의 Tx와 Rx로 사용됩니다. 클린플라이트에서는 포트(Ports)텝에서 UART2가 활성화되었을 때 자동적으로 논리적 채널을 이동시키므로, Naze32의 3번부터 6번 핀에 연결된 수신기 핀을 2만큼 이동시켜야 합니다.

OpenLog는 3.3V에서 12V까지 사용할 수 있습니다. 표준 5V BEC에 Naze32 를 연결한 경우, spare motor header의 +5V와 GND 핀을 OpenLog에 전원으로 사용할 수도 있습니다.

기타 비행콘트롤러 하드웨어

Naze32 이외의 보드에서는 사용할 수 있는 하드웨어 시리얼 장치가 더 많을 수 있습니다. 이 경우, 블랙박스에 어떻게 연결할지는 해당 장치의 문서를 참고하세요. 아래는 중요한 기준입니다.

  • SoftSerial 보다는 하드웨어 시리얼포트를 사용하세요.
  • MSP를 제외한 다른 기능(GPS, 텔레메트리)와 공유할 수 없습니다.
  • MSP가 동일한 UART를 사용하게되면, 시동상태에서 MSP는 작동을 정지합니다.

OpenLog 설정

microSC 카드를 꼽은 상태로 OpenLog에 전원을 넣고 10초 정도 기다렸다가 전원을 내리고 microSD 카드를 컴퓨터에 연결합니다. 카드에 있는 "CONFIG.TXT" 파일을 텍스트 에디터로 엽니다. OpenLog의 현재 설정된 baud rate(대부분 115200 또는 9600)이 보이실 겁니다. 이 baud rate를 설정프로그램(Configurator)의 포트(Ports) 텝에서 입력한 값(대부분 115200 또는 250000)에 맞춰 고쳐줍니다.

이제 파일을 저장하고 다시 OpenLog에 삽입합니다.

If your OpenLog didn't write a CONFIG.TXT file, create a CONFIG.TXT file with these contents and store it in the root of the MicroSD card:

OpenLog가 CONFIG.TXT 파일을 생성하지 못할 경우, 이러한 내용으로 CONFIG.TXT 파일을 만들고 MicroSD 카드의 최상위 폴더에 저장합니다.

115200
baud

original OpenLog 펌웨어를 사용할 경우, 아래의 설정을 사용하세요.

115200,26,0,0,1,0,1
baud,escape,esc#,mode,verb,echo,ignoreRX

오픈로그 보호

OpenLog는 검정색 전기테이프 또는 열수축튜브를 사용하여 탄소섬유와 같은 전도성 프레임과 격리시킬 수 있지만, 이렇게 할 경우, 상태 LED가 보기 힘들게 됩니다. 투명 열수축 튜브를 사용하는 게 좋습니다.

내장 dataflash 메모리

일부 비행콘트롤러는 보드상에 SPI NOR dataflash 칩이 있는데, OpenLog를 사용하는 대신 여기에 비행로그를 저장할 수 있습니다.

Naze32 풀버전 과 CC3D는 "m25p16" 2 MB dataflash 저장칩이 있습니다. 이 칮은 8개의 발이 달린 작은 칩으로, Naze32의 화살표 방향 표시의 바닥면에 있습니다. 이 칩은 Naze32 "아크로(Acro)" 버전에는 없습니다.

SPRacingF3에는 이보다 큰 8 MB 플래시메모리가 달려있어 훨씬 오랫동안 저장할 수 있습니다.

아울러 다음과 같은 칩들도 지원됩니다.

  • Micron/ST M25P16 - 16 Mbit / 2 MByte
  • Micron N25Q064 - 64 Mbit / 8 MByte
  • Winbond W25Q64 - 64 Mbit / 8 MByte
  • Micron N25Q0128 - 128 Mbit / 16 MByte
  • Winbond W25Q128 - 128 Mbit / 16 MByte

dataflash 기록 활성화

설정프로그램의 CLI 탭에서 [set blackbox_device=SPIFLASH] 라고 입력하고 저장하시면 됩니다.

블랙박스 설정

블랙박스는 현재 데이터 로그 속도를 조절할 수 있는 두 가지(blackbox_reate_num 과 blackbox_rate_denom)) 설정이 존재합니다. 이 두 인수로 분수를 취하면 (blackbox_rate_num / blackbox_rate_denom) 비행콘트롤러의 control loop iterations 중 어떤 부분을 로그할 것인지 결정할 수 있습니다. 기본값은 1/1 즉, 모든 iteration을 로그하는 것입니다.

속도가 늦은 MicroSD 카드를 사용할 경우, 데이터 로그 속도를 낮추어 망가진 로그 프레임의 수를 줄일 수 있습니다. 1/2 로 설정하면 대부분의 기체에서 작동합니다.

로그 속도 설정은 클린틀라이트 설정프로그램의 CLI 탭에서 다음과 같은 명령을 입력하면 됩니다.

set blackbox_rate_num = 1
set blackbox_rate_denom = 2

looptime이 2400 이고 rate가 1/1 인 제 쿼드콥터의 데이터 속도는 약 10.25kB/s 입니다. 이 속도라면 제가 사용중인 OpenLog의 16GB MicroSD카드로는 18일치의 비행로그를 저장할 수 있습니다.

SoftSerial을 사용하여 로그하는 경우, 로그속도를 1/32 로 낮추어야 합니다. 이 로그속도에서도 looptime이 1000 보다 빠르다면 성공적인 로그를 장담할 수 없습니다.

OpenLog가 아닌 내장 dataflash 칩에 저장하는 경우, 2MB가 아주 작은 용량이라는 걸 명심하셔야 합니다. 로그속도 1/1 에 looptime 2400의 경우 약 3분 정도면 끝납니다. 비행중 발생하는 기체문제를 조사하는데는 충분하지만, 저장시간을 늘리기 위해서는 로그 속도를 낮추어야 합니다.

저장 시간을 최대로 하려면, 로그 속도를 1/32 (최소값)까지 낮춰야 합니다. 이렇게 하면 10-20Hz 정도 (650byte/sec)로 저장됩니다. 이 정도의 로그 속도라면 2MB dataflash 칩으로도 약 50분간의 비행 데이터를 저장할 수 있습니다. 다만 자세한 사항은 거의 사라지고, 진동이나 PID 설정 문제등 비행 문제를 진단하는 데는 사용할 수 없습니다.

사용(Usage)

블랙박스는 기체에 시동을 걸자마자 데이터를 기록하기 시작하며, 시동을 끄면 정지합니다.

기체에 부저가 부착되어 있다면, 클린플라이트의 시동 삐삐소리를 사용하여 블랙박스 로그와 비행 비디오를 동기화 시키면 됩니다. 클린플라이트의 시동 삑삑 소리는 "길고, 짧고" 패턴입니다. 처음 긴 삑 소리의 시작이 비행데이터로그에서는 파란색으로 보이므로, 이것을 사용하여 저장된 음향 트랙과 동기화 시키세요.

기체를 시동해제시킬 경우 몇초 정도 기다려주어야 블랙박스가 데이터 저장을 마무리할 수 있습니다.

사용법 - OpenLog

매번 전원이 꺼졌다 켜지면, OpenLog는 새로운 로그파일을 생성합니다. 전원은 끄지 않고 여러번 시동을 걸었다가 해제했다를 반복하면, 이들 로그는 하나의 파일로 병합됩니다. 이 경우, 명령줄 도구를 사용하려면 그림을 그리거나 해도록하고자 하는 여러번의 비행중 하나를 선택해야 합니다.

OpenLog 에 전원이 들어와 있는 상태로 SD 카드를 삽입하거나 제거하지 마세요.

사용법 - Dataflash 칩

비행이 끝나면 클린플라이트 설정프로그램(Configurator)를 사용하여 내장 메모리에 있는 내용을 컴퓨터로 다운로드 받습니다. "dataflash" 탭으로 가서 "플래시를 파일로 저장(save flash to file...)" 버튼을 클릭합니다. 로그 저장은 2-3분 정도 소요됩니다.

로그를 다운로드 받은 후, "플래시 삭제(erase flash)"버튼을 클릭하여 칩에 들어 있는 내용을 삭제하셔야 합니다.

내장메모리가 가득찬 상태에서 새로운 비행을 기록하려고 하면, 블랙박스 로그기록은 비활성화되고 아무것도 기록되지 않습니다.

사용법 - 보드에 있는 SD 카드 소켓

비행콘트롤러에 전원을 넣기 전에 반드시 SD 카드를 삽입해야 합니다. 전원이 켜진 상태로 SD 카드를 제거할 수는 있지만, 먼저 시동을 해제하고 5초 정도 기다렸다가 빼야 합니다. (아니면 파일시스템이 망가질 수 있습니다.)

클린플라이트는 기체가 시동이 걸릴 때마다 "LOG" 폴더에 새로운 파일을 생성합니다. 블랙박스 로깅 스위치(Logging switch)를 사용하여 전체 비행동안 기록을 중지시시키면, 시동이 해제된 후 빈 로그 파일은 삭제됩니다.

로그를 읽으려면 반드시 SD 카드를 제거하여 컴퓨터에서 읽어야 합니다. (설정프로그램에서는 이 로그들을 직접 읽어낼 수 없습니다.)

사용법 - 로깅 스위치(Logging Switch)

내장 플래시 칩에 기록을 할 경우, 저장공간을 아끼기 위해 블랙박스 저장 기능을 비활성화 하고싶을 수 있습니다. 이렇게 하려면 설정프로그램(Congifurator)의 모드(Modes) 탭에서 AUX 채널중 하나에 블랙박스 비행모드를 추가합니다. 모드를 추가한 후에는 이 모드를 활성화 시켜야만 블랙박스가 활성화됩니다.

로그파일의 헤더는 항상 시동때 기록됩니다. 로그기록이 정지되었을 때도 마찬가지입니다. 비행중에 언제든지 기록을 정지시키거나 재개시킬 수 있습니다.

기록된 로그 보기(Viewing recorded logs)

비행후에는 확장자가 .TXT 인 비행로그파일이 여러개 생성됩니다.

이러한 .TXT 비행로그 파일은 웹브라우저에 Cleanflight Blackbox Explorere 확장프로그램을 설치하면 대화식으로 확인할 수 있습니다.

https://github.com/cleanflight/blackbox-log-viewer

이 확장프로그램을 이용하면 로그를 그래프로 표시하여 자세히 살펴볼 수 있습니다. 로그를 비디오로 내보내어 다른 사람들과 공유할 수도 있습니다.

블랙박스 해독 도구(blackbox decode tool)을 사용하여 비행로그를 CSV 파일로 변환하여 분석하거나, 블랙박스 렌더링 도구(blackbox render tool)을 사용하여 PNG 프레임으로 렌더링하고 이를 사용하여 비디오로 변환할 수도 있습니다.

이러한 도구와 사용법은 아래 저장소를 확인하세요.

https://github.com/cleanflight/blackbox-tools

====

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

이전글 : G-Tune 사용법(G-Tune Instructions)

다음글 : Baseflight 에서 전환하기(Migrating from baseflight)



Posted by 푸른하늘이

댓글을 달아 주세요

드론/쿼드콥터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 푸른하늘이

댓글을 달아 주세요