Sensorless BLDC ESC to Single Phase AC Inverter 개조

  예전에 기타 이펙터 전원을 배터리로 사용하기 위해 차량용 인버터를 개조하여 잘 사용해 오고 있었다. 그런데 이게 부피도 크고 무겁고, 여러 소자들을 사용한 방식이다 보니 자체 전력 소모도 적지 않았다. 그래서 이번에는 RC(Radio Control)용으로 판매되는 소형 ESC(Electronic Speed Controller)를 개조하여 사용해 보기로 했다.

[그림 1] 개조에 사용된 ESC 정면

[그림 2] 개조에 사용된 ESC 후면

  생긴건 [그림 1]과 [그림 2]처럼 작은 사이즈에 전압 입력범위도 넓고 출력도 굉장하다. 보통 ESC는 브러쉬 DC 모터용과 브러쉬리스 DC 모터용이 있는데 내가 가지고 있는건 브러시리스 DC모터용이라 3상 출력을 가지고 있다. 3상 인버터 스위칭을 위한 6개 FET와 이 FET들의 구동을 위한 드라이버 칩, 그리고 제어를 위한 MCU로 구성되어 있는데 FET에는 방열판이 붙어 있어 구체적인 모델명 파악은 하지 못했다. 스펙상 45A라고 하는데 수A만 되어도 충분하니 차고 넘친다.
  FET 구동용 드라이버 칩은 SA6288이라고 마킹되어 있는데 FD6288과 동일해 보인다. 제어용 MCU는 8051코어 기반의 EFM8BB21F16이 사용되었다. 펌웨어 개조를 하려고 관련 자료들을 찾아 봤는데 죄다 어셈블리로 짜여져있고 다양한 모델들과 많은 기능을 지원하다 보니 소스 파일 덩치도 만만치 않아 분석하기 쉽지 않았다.

[그림 3] 개조 완료

  익숙하지도 않고 크기도 적지 않은 어셈블리코드 분석하는거 보다 새로 짜는게 빠를듯 하여 대충 핀맵 찾아서 C언어로 간단하게 프로그래밍 하여 [그림 3]처럼 완성 하였다. 적당한 주파수 (수십~수백Hz)로 단상 AC만 만들면 되니 소스도 그리 복잡하지 않다. [그림 4]
  ABC 3상중에 A상과 B상만 사용하여 단상 AC를 만들도록 코드를 구성하였으므로, [그림 2]와 같이 A상과 B상을 납땜하여 출력으로 사용 하면 된다. ESC에 사용된 EFM8BB21F16은 20핀짜리 QFN 패키지이고 파악한 핀맵은 아래와 같다 (??로 표기된건 파악하지 못한 핀이다).
  * P0.0(pin02): ??
  * P0.1(pin01): ??
  * P0.2(pin20): ??
  * P0.3(pin19): ??
  * P0.4(pin18): PCM 입력
  * P0.5(pin17): 파란색 LED (0일때 켜짐)
  * P0.6(pin16): 초록색 LED (0일때 켜짐)
  * P0.7(pin15): 빨간색 LED (0일때 켜짐)
  * P1.0(pin14): FD6288Q-HIN1
  * P1.1(pin13): FD6288Q-HIN2
  * P1.2(pin11): FD6288Q-HIN3
  * P1.3(pin10): FD6288Q-LIN1
  * P1.4(pin09): FD6288Q-LIN2
  * P1.5(pin08): FD6288Q-LIN3
  * P1.6(pin07): ??
  * P2.0(pin06): C2D
  * RSTb(pin05): C2C

[그림 4] 단상 인버터 소스

[그림 5] 동작 확인

[그림 6] 크기 비교

  [그림 6] 처럼 기존 차량용인버터 개조판 보다 크기와 무게가 획기적으로 줄었다. 소비전류도 기존 대비 500mA에서 350mA로, 인버터 자체에서 소비하는 소모전류도 상당히 감소하여 배터리 사용 시간도 증가 되었다.

간만에 버스킹...


참 오래간만에 거리공연을 했다.
이번엔 종목을 바꿔서...
날씨는 그날만 많이 추웠다.

PPM to USB Adapter 자작

  만들기는 꽤나 오래전에 만들었었는데 이제서야 올린다.
레이싱 드론이 재밌어보여 시뮬레이터로 연습좀 해볼까 해서 만들었다.
일반 게임용 조이스틱을 써도 되는데, 실제 레이싱 드론에 주로 사용되는 조종기와는 조종감이 상당히 다르기에, 레이싱 드론용 조종기에 USB 어댑터를 부착하여 PC에서 일반 조이스틱으로 인식하도록 꾸며 봤다.
  우선 레이싱 드론 조종용 조종기는 위 그림처럼 좀 투박하게 생겼는데, 갖고 있던 오래된 기종이다. 아래 그림처럼 조종기 뒷면을 보면 RF 모듈을 부착할 수 있는 핀 헤더들이 나와있는데 조종기의 조종스틱과 각종 스위치들의 상태 정보를 PPM (Pulse Position Modulation)이라고 부르는 디지털 신호로 만들어 보내준다.
  이 PPM 신호를 받아 해석한 다음 USB 통신으로 PC에 전송해주면 된다. PC로 전송해줄 때 기왕이면 표준 HID 조이스틱 프로토콜로 보내주면 따로 디바이스드라이버를 만들필요가 없어 표준 게임 패드 USB Client로 펌웨어 만들어주면 끝난다. 참 쉽죠?
  아래 PCB 뒷면 검은 상자는 빈 공간을 채우기 위한 용도로 내부에는 아무것도 없다.
  PC와 USB로 연결해주면 별다른 설정 필요 없이 바로 게임패드로 인식되므로 시뮬레이터에서 적당하게 조종기 캘리브레이션 해주고 시작 하면 된다.
요렇게 만들어서 1년정도 시뮬레이터로 레이싱 드론 조종 연습을 해봤는데 이제야 감이 좀 잡힌다.
실제 드론으로 날려봐야 하는데, 이거 속도도 엄청 빠르고 무서워서리....