DShot ESC

저작권: 쿼드(QUAD) 드론연구소 https://www.youtube.com/@quad-robotics

../_images/hobbywing-esc.jpg

DShot은 멀티로터 및 쿼드플레인 애플리케이션에 특히 유용한 차량 제어를 개선할 수 있는 빠르고 고해상도 디지털 통신을 허용하는 디지털 ESC 프로토콜입니다. 다른 이점은 다음과 같습니다.

  • ESC로 전송된 값은 체크섬으로 보호됩니다.

  • ESC와 자동 조종 장치 사이의 시계 차이는 비행 성능에 영향을 미치지 않습니다.

  • ESC 보정이 필요하지 않습니다.

DShot은 BLHeli ESC 에서 사용하는 기본 ESC 제어 프로토콜입니다 . 많은 BLHeli ESC 버전은 ESC 구성, ESC 원격 측정 , LED 제어 및/또는 양방향 dshot 과 같은 더 많은 기능을 제공합니다 . DShot 지원 ESC를 선택하는 경우 BLHeli32 또는 BLHeli_S도 지원하는 ESC를 사용하는 것이 좋습니다.

메모

DShot을 지원하는 것으로 알려진 ESC에서만 DShot을 시도하십시오. 그렇지 않으면 예측할 수 없는 결과를 얻게 됩니다.

메모

최근 DShot 및 기타 디지털 ESC 프로토콜을 지원하지만 패스스루 및 원격 측정과 같은 BLHeli32 특정 기능을 지원하지 않는 펌웨어가 포함된 독점 및 비독점 16/32비트 ESC가 증가하고 있습니다. 지원되는 기능에 대한 자세한 내용은 ESC 설명서를 참조하십시오.

메모

대부분의 DShot ESC는 일반적으로 일반 PWM ESC 로도 작동합니다 .

ESC 연결

IOMCU(예: Pixhawk, CubeOrange)가 있는 자동 조종 장치의 경우 양방향 DShot ESC를 AUX 출력에 연결해야 합니다. CubeOrange Normal에서 DShot은 모든 채널에서 작동합니다. AUX1은 Bi-Directional DShot에 사용할 수 없습니다. 즉 AUX2에서 AUX6까지만 Bi_directional에 사용할 수 있습니다. ( 문제 참조 ).

별도의 IOMCU 보조 프로세서가 없는 Pixracer기타 보드 의 경우 모든 서보/모터 출력을 사용할 수 있습니다.

제한 사항에 대한 자세한 내용은 아래 혼합 ESC 프로토콜 섹션을 참조하십시오.

DShot 전송 속도 선택

원하는 전송 속도에 대해 MOT_PWM_TYPE을 설정 하고 자동 조종 장치를 재부팅합니다.

  • 150kbaud의 DShot150(긴 신호 리드 실행이 있는 대형 항공기에 권장됨)

  • 300kbaud에서 DShot300

  • 600kbaud의 DShot600(대부분의 차량에 권장)

  • 1200kbaud에서 DShot1200

DShot ESC 프로토콜을 사용하는 더 긴 케이블이 있는 대형 항공기의 경우 가장 안정적인 프로토콜인 가장 낮은 전송 속도인 DShot150을 사용하는 것이 좋습니다(낮은 전송 속도는 케이블의 노이즈에 덜 민감함).

소규모 선박의 경우 DShot600이 가장 널리 사용되며 따라서 새로운 DShot1200 프로토콜보다 단순히 테스트 양 때문에 더 적합한 선택이 될 수 있습니다.

더 높은 속도(예: DShot600 및 DShot1200)는 잡음에 더 취약하지만 할당된 DMA 채널을 더 짧은 시간 동안 묶는 이점이 있어 DMA 공유가 많은 자동 조종 장치에 도움이 될 수 있습니다.

양방향 DShot이 사용되는 경우 DShot300 및 DShot600이 선호됩니다. 이 기능은 다른 펄스를 보내기 전에 ESC의 응답을 기다려야 하므로 더 긴 펄스 폭이 필요하기 때문입니다. 양방향 DShot은 DMA 채널을 공유하지 않으므로 다른 주변 장치에 영향을 미치지 않습니다. 양방향 DShot은 BLHeli32 ESC에서만 지원됩니다.

서보 기능 구성

위에서 언급했듯이 IOMCU(예: Pixhawk, CubeOrange)와 함께 자동 조종 장치를 사용하는 경우 ESC는 기본 MAIN 출력 대신 AUX 출력에 연결해야 합니다. 이는 자동조종장치가 ESC/모터에 연결된 출력을 알 수 있도록 해당 SERVOx_FUNCTION 매개변수를 업데이트해야 함을 의미합니다. 이것은 Mission Planner의 "Servo Output" 페이지를 사용하여 가장 쉽게 수행할 수 있습니다.

메모

출력이 DShot에 대해 구성되면 SERVOx_MIN/MAX/TRIMDShot이 이러한 매개변수를 사용하지 않기 때문에 해당 출력에 대한 매개변수는 항상 무시됩니다. 사용되는 트림 값은 리버서블 출력인 경우 1500, DShot에서 일반 출력 설정인 경우 1000이며 출력 범위는 항상 1000-2000입니다. ESC 보정 단계가 필요하지 않습니다.

메모

모든 마스크 기반 구성은 PWM 그룹 수준에서만 변경할 수 있습니다. 어떤 출력이 다른 그룹에 있는지 확인하려면 자동조종장치 설명서를 참조하십시오. 아래 ESC 프로토콜 혼합 섹션을 참조하십시오 .

경고

ESC가 선택한 구성을 지원할 수 있는지 확인하십시오. 그렇지 않으면 손상이 발생할 수 있습니다. 여기에는 아래에서 설명하는 프레임 속도가 포함됩니다. 또한 ESC를 재보정하지 않고 디지털 출력 유형과 아날로그 출력 유형 간에 전환할 때 주의하십시오. 이는 명령되지 않은 모터 출력으로 이어질 수 있습니다.

RC 배너 확인

자동 조종 장치를 재부팅하고 "RC 배너"를 확인하여 출력 채널이 예상대로 설정되었는지 확인합니다(이 배너는 매개변수를 다운로드할 때마다 나타남).

추가 구성

DShot 업데이트 속도

DShot 펄스가 전송되는 빈도는 SERVO_DSHOT_RATE를 통해 구성할 수 있습니다 . 기본적으로 ArduPilot은 새 IMU 샘플이 준비될 때마다 고정된 1Khz 간격으로 DShot 데이터 펄스를 출력 합니다 . 표준 400Hz 스케줄러 루프 속도의 헬리콥터에서는 약 1.4Khz에서 작동합니다. 그러나 출력이 상당히 불규칙합니다. 보다 규칙적인 출력을 얻기 위해 SERVO_DSHOT_RATE스케줄러 루프 속도의 배수로 펄스를 보내도록 구성할 수 있습니다. 따라서 2로 설정하면 펄스가 800Hz로 전송되고 3으로 설정하면 1.2Khz 등으로 전송됩니다. 그 차이는 출력이 매우 균일하여 더 엄격한 모터 제어가 필요한 헬리콥터(예: 더 작은 레이서)에 도움이 될 수 있다는 것입니다. BLHeli32가 일부 자동 조종 장치에서 때때로 프레임을 누락한다는 보고로 인해 1Khz 미만으로 펄스를 전송하는 것은 권장되지 않습니다. 유사하게 더 높은 속도로 전송하면 일부 CPU 비용으로 필요한 경우 누락된 펄스로부터 더 빠르게 복구하고 안정성을 높일 수 있습니다. 매우 높은 속도는 더 빠른 DShot 속도에만 사용할 수 있습니다. 그렇지 않으면 펄스가 겹칠 수 있기 때문입니다. 예를 들어 DShot150이 이론적으로 지원할 수 있는 가장 빠른 속도는 4Khz입니다.

DShot 명령

특정 ESC에서 DShot 명령이 지원됩니다. 이를 통해 ESC LED, 경고음 및 모터 방향과 같은 기능을 자동 조종 장치로 조작할 수 있습니다. DShot 명령을 사용하려면:

현재 지원되는 명령은 다음과 같습니다.

  • DShot LED 켜기/끄기

  • DShot 버저 켜기/끄기

  • 모터 방향 반전( SERVO_BLH_RVMASK 매개변수 참조)

  • 가역 DShot(일명 3D 모드)( 가역 DShot ESC 참조 )

경고

현재 ArduPilot 은 일반적으로 사용되는 명령 집합( SERVO_DSHOT_ESC =1)을 지원하지만 다른 명령 집합이 나타나고 호환되지 않아 정의되지 않은 작업이 발생할 수 있습니다. type=1을 사용한 올바른 작동이 ESC에 대해 확인될 때까지 주의하십시오(블레이드 제거!).

ESC 프로토콜 혼합

ArduPilot 자동조종 장치의 모든 서보/모터 출력은 50Hz 이상의 프레임 속도에서 일반 PWM 작동이 가능하지만 모두 다른 ESC 프로토콜 구성이 가능한 것은 아닙니다. 그리고 일반적으로 이러한 구성은 모두 ESC를 구동하지 않더라도 미리 지정된 출력 그룹에 적용되어야 합니다. 따라서 다음 주의 사항이 적용됩니다.

  1. IOMCU(PixHawk 및 Cube와 같은)를 사용하는 자동 조종 장치의 8개의 "MAIN" 출력은 DShot에 사용할 수 없습니다. 이러한 자동 조종 장치에서는 추가 "AUX" 출력만 DShot을 지원합니다. "MAIN" 출력을 DShot으로 설정하려고 하면 DShot 프로토콜로 설정되어 있어도 정상적인 PWM 출력이 발생합니다.

  2. 별도의 IOMCU 보조 프로세서가 없는 Pixracer기타 보드 의 경우 모든 서보/모터 출력을 사용할 수 있습니다.

  3. 공통 타이머를 공유하는 출력 그룹은 동일한 고급 구성을 가져야 합니다. 일반적으로 이들은 Autopilot Hardware Options 페이지 에서 링크된 Autopilot의 하드웨어 설명에 지정됩니다 . 예를 들어 출력이 그룹의 DShot에 대해 구성된 경우 일반 PWM ESC 또는 일반 PWM 서보 작동 을 위해 해당 그룹의 다른 출력을 사용할 수 없습니다 .

메모

자동 조종 장치가 초기화될 때마다 지상 관제소에 메시지를 보내 어떤 출력이 PWM/Oneshot/또는 DShot인지 표시합니다. 나머지 더 높은 번호의 출력은 GPIO로 할당됩니다.

Last updated