🔷프로토콜
이 페이지와 하위 페이지의 내용은 코드론II에 사용될 수 있는 프로토콜 안내입니다.
1. CoDrone DIY 소개
CoDrone DIY 는 상급자용 코딩 교육에 맞춰 개발된 드론입니다.
2. 전송 데이터 구조
CoDrone DIY 는 외부 장치와 통신 할 경우, 주로 조종기를 PC와 연결한 상태에서 시리얼 통신을 하게 됩니다. 이 때 송수신 데이터의 구조는 아래와 같습니다.
0 | 1 | 2 | 3 | 4 | 5 | … | N-1 | N |
Start Code | Start Code | Header | Header | Header | Header | Data | CRC16 | CRC16 |
Start Code | Start Code | DataType | Length | From | To | Data | CRC16 | CRC16 |
0x0A | 0X55 | - | - | - | - | - | - | - |
각 항목에 대한 설명은 다음과 같습니다.
영역 | 설명 |
Start Code | 데이터 전송 시작을 알림 |
Header - DataType | 데이터의 형식 |
Header - Length | 데이터의 길이 |
Header - From | 데이터를 전송하는 장치의 DeviceType |
Header - To | 데이터를 수신 는 장치의 DeviceType |
Data | 전송할 데이터 |
CRC16 | Header와 Data가 정상적으로 전달되었는지 판별 http://www.menie.org/georges/embedded/crc16.html |
Data 영역과 CRC16 영역 모두 Little Endian을 사용하고 있습니다. Little Endian일 때 2바이트 이상의 변수는 하위 바이트가 배열의 앞 부분에 위치합니다. C#에서는 Bitconverter를 사용하시면 편리하게 변경할 수 있습니다.
16진수 | 0X1234 | 0X1234 |
배열의 인덱 | 0 | 1 |
Big Endian | 12 | 34 |
Little Endian | 34 | 12 |
16진수 | 0x12345678 | 0x12345678 | 0x12345678 | 0x12345678 |
배열의 인덱 | 0 | 1 | 2 | 3 |
Big Endian | 12 | 34 | 56 | 78 |
Little Endian | 78 | 56 | 34 | 12 |
3. 사용 시 주의사항
모든 장치는 데이터를 요청했을 경우에만 관련된 데이터를 응답으로 전송합니다.
데이터를 수신받는 장치를 지정한 경우, 해당 장치는 데이터를 요청받은 경우가 아니라면 Ack를 응답으로 보냅니다.
Broadcasting으로 데이터를 전송한 경우, 데이터 요청이 아닌 일반적인 명령이었다면 해당 명령을 처리할 수 있는 장치는 받은 명령을 실행합니다.
Broadcasting으로 데이터를 전송한 경우, 데이터 요청을 전달하였다면 해당 데이터에 대해 응답을 할 수 있는 장치가 응답을 합니다. 이 과정에서 두 개 이상의 장치가 같은 데이터에 대해 응답이 가능하다면 데이터 송수신 간에 충돌이 발생할 수 있습니다. 사용 시 주의하셔야 합니다.
Broadcasting에 대해서는 Ack를 응답으로 보내지 않습니다.
4. 시리얼 통신 설정
영역 | 설정 |
Baud Rate | 57600 |
Parity | None |
Data Bits | 8 |
Stop Bits | 1 |
5. 드라이버 설치
코드론Ⅱ 조종기는 윈도우10인 경우 자동으로 인식합니다. 그 외에 장치를 인식하지 못하는 경우, 별도의 드라이버를 설치하셔야 합니다. (Win 7/8 : 수동 설치 필요, Win 10/osx : 자동인식)
Last updated