시간 간격 처리 루틴(회전각) 드론이 회전을 할 경우에는 자이로 센서가 역할을 하게 됩니다. 이때 자이로 센서를 이용해서 회전각을 구하게 되는데 이 과정에서 시간 간격에 대한 정보가 필요하다고 합니다. 그래서!! 시간 처리를 해주는 루틴을 구현을 해야 합니다. 이때 주의해야할 실제로 센서가 센서값을 읽는데 걸리는 시간은 2ms 전후가 됩니다. 또한 센서를 이용하여 드론을 날릴 경우 드론의 중심을 안정적으로 잡기 위해서는 3ms 전후가 되어야합니다.(값이 큰 경우[10ms]인 경우가 되면 드론의 모터 회전 반응이 늦어져서 중심을 잡기 힘듭니다.) 즉, 시간 간격을 2ms 전후로 설정을 해주어서 드론이 비행할때 중심을 안정적으로 잡게 해주어야 합니다. 그래서 시간 간격 처리 루틴을 작성해야하는 이유입니다. ..
센서 보정 루틴 구현하기 목표 -Raw, Pitch, Yaw에 대한 각도를 구하기 위한 값들을 구하기 왜 센서 보정을 해야하는가? 기본적으로 센서들(여기서는 가속도 센서, 자이로 센서)은 지면가 수평인 상태여도 무시할 수 있는 정도의 미세하게 흔들리는 값들을 보내게 된다. 그렇게 된다면 기본적인 초기 값을 지정해 주기 어려운데 이러한 이유로 인해서 가속도 센서가 현재 상태에서 가지는 기본 값의 평균값을 얻어내야 합니다. 그래서! 센서 보정 루틴을 구현을 해주여야 합니다. 이번 소스코드를 이해하기 위해서는 이전 포스팅에서 설명을 드렸던 "기본 루틴 구현하기"에서 이해를 먼저 하셔야 합니다. 본격적으로 센서 보정하는 소스코드에 대해 설명을 드리도록 하겠습니다. 소스코드 //센서 보정 루틴 #include c..
기본 루틴 구현하기 [목표]드론을 움직여도 프로세싱상에서 보여지는 도형들이 움직이지 않도록 Roll, Pitch, Yaw 각도에 대해 0으로 초기화 시킨 값만 전달하기 바로 코드로 넘어가겠습니다. 소스 코드 //기본 루틴 구현 #include const int MPU_addr = 0x68; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ; void setup() { initMPU6050(); //가속도 자이로 센서 값을 읽음 Serial.begin(115200); } void loop() { readAccelGyro(); SendDataToProcessing(); //Roll, Pitch, Yaw에 대한 각도 정보를 보냄 } //MPU-6050초기화 루틴 void initMPU..
상보필터 상보필터에 대한 개념을 이해할려면 가속도와 자이로 센서에 대해 이해를 먼저 해야지만 이해를 할 수 있더라고요 ㅎㅎMPU-6050 가속도 자이로 센서 여기로 들어가셔서 포스팅을 해둔것을 읽어보시면 도움이 되실거 같습니다. 간단하게 여기다가 다시 정리를 해둘게요 가속도 센서 : 어느 정도로 기울어졌는지 각도('중력 가속도'를 이용)를 측정*중력 가속도 : 연직 방향으로 작용하는 중력을 어느 각이 어느정도로 받고 있는지 이용하여 기울어진 정도 측정 자이로 센서 : 각 속도를 측정하는 센서, 특정 축을 기준으로 회전하는 속도를 나타냄-> 자이로 값을 적분하여서 '각도'를 얻음※자이로 센서는 매 순간 값은 정확하나 평균적인 값은 믿을 수 없다. -> 이러한 이유를 잘 보여주는 포스팅이 Geek Mom P..
MPU-6050 Roll, Pitch 테스트 안녕하세요 오랜만에 드론에 대해 포스팅을 적어보네요 ㅎㅎ 지금가지 다른 공부를 좀 하다가 드론 해커톤 참여를 신청할려고 생각을 해보니까 하기 위해서는 드론에 대한 전반적인 지식과 구동원리를 빨리 파악해야겠다는 생각때문에 다시 드론에 대해 공부를 시작하게 되었습니다!!! 혹시 다들 GeekMomProjects라는 홈페이지를 아시나요?? 여기서 어떤 아주머니께서 제공을 하신 프로세싱 프로그램과 아두이노 스케치 소스를 가지고 간단하게 테스트를 해보겠습니다. Geek Mom Projects 홈페이지 바로가기 홈페이지에 들어가시면 위와 같은 파일들을 다운받아주세요ㅎㅎ 그리고 프로세싱 프로그램과 아두이노 cc기반의 프로그램도 설치가 되어있어야 해요! 일단 아두이노 IDE..
오랜만에 게시글을 올리게 되네요 ㅎㅎ드론에 대해 공부해서 정리하는겸 포스팅을 하고 있습니다. 그래서 오랜만에 오게 되었어요 이번 포스팅에서는 이전 시간에 알아본 MPU-6050 센서에 대해서 알아본것을 토대로 자이로 가속도 값을 해석하는것을 목표로 두겠습니다. [드론]MPU-6050 가속도 자이로 센서 제가 이전 포스팅에서 "왜 소스코드에서 int16_t 타입으로 변수를 선언 했었는지 언급을 했었습니다. 이렇게요 추가적으로 이어서 설명을 드리자면 16bit 변수를 통해서 표현할 수 있는 숫자의 범위는 -32768 ~ 32767 사이의 정수 값 입니다. 본격적으로 가속도 센서 값을 해석하는 방법에 대해서 알아보도록 하겠습니다. 가속도 센서 값 해석하기 선언한 변수를 보시게 되면 AcX, AcY, AcZ가 ..
MPU6050 드론에는 위와 같은 가속도 자이로 센서가 필요합니다. 제가 사용하는 드론에서는 GY-521 MPU6050 모듈이 장착되어 있습니다. 이 센서를 이용하는 목적을 한번 알아보도록 하겠습니다. 센서 이용 목적드론의 기울어진 정도회전한 정도 MPU6050에 포함되어 있는 센서 가속도 3축자이로 3축온도센서총 7가지 센서[*3축 : x축, y축, z축] 저는 위 센서 중 온도센서는 사용을 안합니다. 왜냐하면 가속도, 자이로 값은 온도에도 영향을 받기 때문에 온도센서도 포함이 되어있는 것 입니다. 그렇지만 상온에서는 가속도 자이로 센서가 온도에 크게 영향을 받지 않기 때문에 사용을 안할 것 입니다. 만약 영하권으로 내려가는 지역에서는 사용해야겠지요? MPU6050의 특징 하나의 칩 안에 MEMS 가속..