자이로 센서 처리 루틴 구현 먼저 참고해야할 포스팅 [드론]자이로 센서 개념정리[드론]자이로 센서 값 해석하기 이번 포스팅 목적: 자이로 값을 이용해서 Roll, Pitch, Yaw의 각도를 구하는 루틴을 추가하기 소스코드 //자이로 센서 처리 루틴 구현 #include const int MPU_addr = 0x68; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ; void setup() { initMPU6050(); //가속도 자이로 센서 값을 읽음 Serial.begin(115200); calibAccelGyro(); //센서 보정 루틴 initDT();// 시간 간격에 대한 초기화 } void loop() { readAccelGyro(); calcDT(); //시간 간격..
자이로 센서 값 해석하기 안녕하세요 바로 이전 포스팅에서 자이로 센서에 대한 개념정리를 추가적으로 해보았습니다.이번 포스팅에서는 자이로 센서 값에 대한 해석하는 방법에 대해 알아보도록 하겠습니다^^ 자이로 값 해석하기에 들어가기 앞서 여기서 사용된 소스코드는[드론]MPU-6050 가속도 자이로 센서 포스팅에 사용된 소스코드로 사용하도록 하겠습니다. 가속도 센서 값 해석하기 포스팅도 참고하시면 좋을거 같네요^^ 소스코드에 보시면 int16_t 타입으로 변수를 선언을 해주었습니다. 이는 16비트 타입의 범위로 정의를 해준 것 이며 16비트 타입은 -32769 ~ 32767 사이의 값을 가질 수 있습니다. 여기서 GyX, GyY, GyZ가 가질 수 있는 정수 값의 범위는 -32769 ~ 32767입니다. 그러..
자이로 센서 개념 정리 PID 제어에 대한 포스팅을 하다가 갑자기 자이로 센서로 넘어오게 되었는데요 제가 이번에 With-Camp 해커톤 3회를 참여하다가 MPU-6050을 이용한 프로젝트를 진행하게 되었습니다. 근데 자이로 센서에 대한 지식이 너무 부족해서 다시 복습 및 정리를 하는 겸 해서 자이로 센서에 대 한 포스팅을 다시 하게 되었습니다. 일단 맨 처음부터 자이로 센서가 무엇인지 한번 다시 알아보고 자이로 센서 값 해석에 대한 포스팅도 하겠습니다.(이전에도 정리를 해두었어요..ㅠ) 자이로 센서가 무엇일까?? 이전 포스팅에서 작성을 했지만 다시 한번 복습하고 내용을 좀 더 추가하는 겸 해서 포스팅을 할게요~MPU-6050 가속도 자이로 센서 개념 자이로 센서의 용도각속도를 측정하는 용도 (단위 : ..
PID 제어 알고리즘 구현 위에 보이는 알고리즘은 표준 PID 알고리즘 입니다. 드론에서 이 알고리즘을 적용을 시키게 되면 드론이 뜨기는 뜨지만 안정적으로 비행을 하기 힘들며 조종하기도 힘듬니다. 그래서 드론에서는 이중 PID 제어 알고리즘을 사용하게 되는데 일단!! 이중 PID 제어 알고리즘을 알아보기 전 표준 PID 알고리즘을 토대로 프로그램도 작성을 해보고 플로워차트도 구현을 시켜보는게 좋을거 같아서 표준 PID 제어기 알고리즘에 대한 구현을 설명을 해드리도록 하겠습니다. 표준 PID 제어기 알고리즘 스케치 작성 1.이론적인 표준 PID 제어기 알고리즘 Error = Setpoint - Input Error : 현재 오차setpoint : 목표로 설정하는 값Input : 현재 입력 값(제어하고자 하..
PID 튜닝 방법 이번 포스팅 에서는 PID 튜닝 방법에 대해 알아보도록 하겠습니다. 알아보기 전에!! PID 제어가 무엇인지 잘 모르시는 분들은 이전 포스팅 게시물을 한번 확인을 해주시고 오시면 도움이 될거 같아요^^ [드론] PID 제어기 개념정리 개발자(나)가 결정을 하게 되는 값 : 게인(gain) -> 이득값, 증폭값도 동일한 말 입니다.게인(gain)은 PID 제어기 개념정리에서 보여졌던 매개변수(Ku, Ki, Kp)들을 의미합니다. 그러면 이제 게인(gain)을 알면 PID 튜닝을 할 수 있다고 하는데 어떻게 얻어지는지 한번 알아보도록 하겠습니다. 게인(gain) 결정 방법 튜닝(tunning) 게인(gain)을 수학적 or 실험적-경험적 방법으로 계산하는 과정 튜닝하는 방법 지글러 - 니콜..
PID 제어기 핵심 내용 : 피드백 제어(Feedback Control) Feedback Control 원리제어하고자 하는 대상(드론)에 의해 정해지는 입력 값(Input)을 측정)목표로 하는 목표 값/설정 값(setpoint)와 비교하여 오차(error)를 계산오차를 이용해서 제어에 필요한 제어 값(Output)을 계산계산 된 제어값은 다시 Feedback을 하러 제어하고자 하는 대상에 입력으로 사용됨 표준적인 PID 제어기는 3개의 항(P, I, D)을 더해서 제어 값(MV : mainipulated variable)을 계산하도록 구성됩니다. 그러면 여기서 3개의 항인 P, I, D가 무엇인지 한번 알아보도록 하겠습니다. P제어( 비례항 ) 간편요약 : 현재 제어값이 오차에 비례하여 제어량(Outpu..
가속도 센서를 이용한 각도 구하기 [기본 개념]MPU-6050 가속도 자이로 센서 [처리루틴]기본 루틴 구현하기센서 보정 루틴 구현하기시간 처리 루틴 구현하기 이번에는 가속도 센서를 처리해서 Roll, Pitch, Yaw의 각도를 구해보는 시간을 가지도록 하겠습니다. 일반적으로 기본 루틴 구현하기에서 구한 AcX, AcY, AcZ도 동일한 가속도 센서 값 입니다. 그러나 여기 소스코드에 보시면 아시겠지만 별도로 계산을 해서 accel_x, accel_y, accel_z의 값들을 구하는걸 볼 수 있을 것입니다.그 이유는 MPU-6050의 가속도 센서를 이용한 드론을 지면 수평한 상태에 놓으면 미세한 떨림에 의해서 부유한 값을 얻게 됩니다. 그러한 현상들을 해결 하기 위해서 가속도 센서의 현재 위치하고 있는..
수학,삼각함수 정리 드론에 대한 내용을 포스팅 하다가 값자기 수학, 삼각함수에 대해 포스팅을 하게 되었는데요 그 이유는!! 이제 앞으로 삼각함수에 대해 많이 쓰일것이기 때문에 한번 정리하고 가면 좋겠다~ 싶어서 이렇게 글을 적게 되네요 ㅎㅎㅎ 수학 함수 min구조 : min(x, y)매개변수x : 첫번째 비교 값y : 두번째 비교 값return값 : x,y중 작은 값max구조 : max(x,y)매개변수x : 첫번재 비교 값y : 두번째 비교 값return값 : x,y중 큰 값abs구조 : abs(value)매개변수 value : 데이터return값 : value의 절대 값constrain구조 : constrain(value , a, b)매개변수value : 데이터a : value가 가질 수 있는 최솟값b..