센서 > MPU6050 가속도 및 자이로 레지스터 엑세스

TODAY245 TOTAL2,276,467
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 센서 | 자이로센서 | MPU6050 가속도 및 자이로 레지스터 엑세스

페이지 정보

작성자 키트 작성일2017-08-21 16:25 조회1,284회 댓글0건

본문

2093095301_VXCmd9Jq_MPU6050_-_38.PNG3Ftype3Dw740

 

    TCCR0=7;  TIMSK=1;            //16000000/1024/256=61Hz=16.384ms
타이머를 초당 61번 설정하고

//

interrupt [TIM0_OVF] void timer0_ovf_isr(void){ mpu6050_updateQuaternion(); }
16.384ms마다 타이머에서 mpu6050_updateQuaternion() 함수를 호출 하고 있습니다.

//

void mpu6050_updateQuaternion(){
    int ax=0,ay=0,az=0,gx=0,gy=0,gz=0;
    float axg=0,ayg=0,azg=0,gxrs=0,gyrs=0,gzrs=0;
   //get raw data
    while(1){
        mpu6050_readBit(MPU6050_RA_INT_STATUS,MPU6050_INTERRUPT_DATA_RDY_BIT,(unsigned char *)buffer); // 0x3A
        if(buffer[0])break;
        delay_us(10);
    }

4.17 Register 58 – Interrupt Status (Type: Read Only)

0x3A  INT_STATUS 레지스터를 읽어서 데이터를 읽어도 되는 상태면 아래 코드에서 14개의 레지스터를 읽어옵니다.
    mpu6050_readBytes(MPU6050_RA_ACCEL_XOUT_H,14,(unsigned char *)buffer);
    ax=(((int)buffer[ 0])<<8)|buffer[ 1];
    ay=(((int)buffer[ 2])<<8)|buffer[ 3];
    az=(((int)buffer[ 4])<<8)|buffer[ 5];
    gx=(((int)buffer[ 8])<<8)|buffer[ 9];
    gy=(((int)buffer[10])<<8)|buffer[11];
    gz=(((int)buffer[12])<<8)|buffer[13];

    axg=(float)ax*0.00006103515625; // MPU6050_AXOFFSET=0, MPU6050_AXGAIN
    ayg=(float)ay*0.00006103515625; // MPU6050_AYOFFSET=0, MPU6050_AYGAIN
    azg=(float)az*0.00006103515625; // MPU6050_AZOFFSET=0, MPU6050_AZGAIN;
    gxrs=(float)(gx-(-42))*0.001064225;//degree to radians // MPU6050_GXOFFSET=-42, MPU6050_GXGAIN=16.4
    gyrs=(float)(gy-(  9))*0.001064225;//degree to radians // MPU6050_GYOFFSET=  9, MPU6050_GYGAIN=16.4
    gzrs=(float)(gz-(-29))*0.001064225;//degree to radians // MPU6050_GZOFFSET=-29, MPU6050_GZGAIN=16.4
    //compute data
    mpu6050_mahonyUpdate(gxrs,gyrs,gzrs,axg,ayg,azg);
}
//

소스코드에서 왜 저렇게 설정 했는지는 여러분들이 공부 해야 할 과제입니다.

공부 하기 쉽도록 도와드리는 것까지가 제가 해드릴 수 있는 부분이고, 공부는 각자 해야 하는 것이죠^^

//

공부 후에는 다른 분들을 위해서 글을 올려주시면 감사하겠습니다.^^

회원작품에 소스를 추가해서 올리셔도 되고

회원업로드 게시판에 올리신다면 제가 이 게시판으로 옮겨 드리겠습니다.^^

 

//

댓글 0

조회수 1,284

등록된 댓글이 없습니다.

센서HOME > 센서 > 자이로센서 목록

게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기