본문 바로가기

프로젝트/하드웨어

4. 드론 어플 연결 msp (Multiwii Serial Protocol)

반응형

1. MSP((Multiwii Serial Protocol)) 설명


 시작 문자 $를 시작하여 멀티위를 나타내는 M을 보내고 송수신을 나타내는(<,>) 보낸다음 전송되는 Byte 수를 전송하고 타입을 보내고 

데이터(Roll,Pitch,Yaw,Throttole,Aux)를 보내고 CRC(사이즈부터 시작하여 데이터까지를 XOR)를 보냅니다.


2. 전송확인

void setup() {

  Serial1.begin(115200);  

  Serial.begin(115200);


}


void loop() {

  if(Serial1.available()){

    Serial.write(Serial1.read());

  }






3. 분석하기

 void setup() {

  Serial.begin(115200);  //드론 -> 어플

  Serial1.begin(115200); //어플 -> 드론

  

}

uint8_t msp_packet[11];


void loop() {

  int cnt=0;

  char msp_data=0;

  while(1){    

    if(Serial1.available()){    

      msp_data=Serial1.read();  

      if(msp_data=='$') cnt=0;

      else cnt++;

      msp_packet[cnt]=msp_data;

      if(cnt==10){

        msp_print();      

      }

    }

  } 

}


void msp_print(){

  for(int i=0;i<=4;i++){

    Serial.print((char)msp_packet[i]);

    Serial.print(msp_packet[i]);

  }  

  Serial.print('\t');

  Serial.print(" Roll:");

  Serial.print((char)msp_packet[5]);

  Serial.print(msp_packet[5]);

  Serial.print(" Pitch:");

  Serial.print((char)msp_packet[6]);

  Serial.print(msp_packet[6]);

  Serial.print(" Yaw:");

  Serial.print((char)msp_packet[7]);  

  Serial.print(msp_packet[7]);

  Serial.print(" Throttole:");

  Serial.print((char)msp_packet[8]); 

  Serial.print(msp_packet[8]);

  Serial.print(" Aux:");

  Serial.print((char)msp_packet[9]); 

  Serial.print(msp_packet[9]);

  Serial.print(" 10:");

  Serial.print((char)msp_packet[10]); 

  Serial.println(msp_packet[10]);

  

}





 시작

Head1 

방향 

데이터수 

타입 

Roll 

Pitch 

Yaw 

Throttole 

Aux 

CRC 

 $

ㅁ 

 }

공백 

ㅁ 

 36

77 

60 

150 

125 

125 

125 

85 

187 


설명 

위에 표처럼 $M<lㅁ}}} Uㅁ 순서로 어플에서 드론으로 전송되는 것을 볼 수 있습니다.

이런 형식을 아스키코드라고 하는데...아스키표를 보면서 일일이 대조하면서 분석하기는 시간이 많이 들어서 바로 아스키코드를 10진수로 표현하는 코드를 만들어 분석해보았습니다.

Header 코드는 $M< 이고 < 것은 데이터의 방향을 나타냅니다.

Size는 5 바이트를 데이터를 보낸다는 의미 로 Roll Pitch Yaw Throttole Aux 이렇게 보낸다는 의미

그리고 마지막 CRC 부분은 계산기로 5 150 125 125 125 0 85 XOR 하시면 187 나옵니다~  




반응형

'프로젝트 > 하드웨어' 카테고리의 다른 글

5.MPU6050 연결 및 테스트  (0) 2017.05.24
3. HM-10 블루투스 테스트(2)  (0) 2017.04.20
2. HM-10 블루투스 테스트(1)  (0) 2017.04.19
1. 시작~  (0) 2017.04.06