MPU6050 공부 1)

ZEDY·2023년 8월 2일

공부 로그 남기기 !
요새 영양실조 판정을 받아 정신이 오락가락하지만... 아자아자 이겨내자....
나는 소프트웨어만 다루다 보니까 하드웨어 공부는 솔직히 버겁다. 내가 잘 아는 분야도 아니고..
그래도 뭐 해야지 어쩌겠누......


https://chigun.tistory.com/20
https://rockjjy.tistory.com/2403
해당 티스토리를 참고하여 공부하였습니당 감사합니다 :)

MPU6050 이란?

VCC : 전원
GND :
SCL : Serial Clock : Serial Flash를 동작 시키기 위한 Clock을 공급하는 신호.
SDA : Serial Data
XDA : Auxiliary Serial Data
XCL : Auxiliary Serial Clock
ADO : I2C address select
INT : Interrupt

MPU6050의 I2C 주소값은 0x68이라고함.

I2C가 뭐임

https://mickael-k.tistory.com/184
통신 기법 중 하나.
2개의 선을 이용하는 통신 방식 : 두 가닥으로 직렬 통신하는 통신프로토콜

  • SDA : 데이터를 주고받기 위한 선
  • SCL : 타이밍을 동기화하기 위한 클럭 선
    하나의 마스터-여러개의 slave기기가 물려 통신 가능
    시간에 자유로움

#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Servo.h"
 
MPU6050 mpu;
 
int16_t ax, ay, az;
int16_t gx, gy, gz;
 
Servo myservo;
 
int val;
int prevVal;
 
void setup() 
{
    Wire.begin();
    Serial.begin(38400);
 
    Serial.println("Initialize MPU");
    mpu.initialize();
    Serial.println(mpu.testConnection() ? "Connected" : "Connection failed");
    myservo.attach(9);
}
 
void loop() 
{
    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
 
    val = map(ay, -17000, 17000, 0, 179);
    if (val != prevVal)
    {
        myservo.write(val);
        prevVal = val;
    }
 
    delay(50);
}

mpu init에서 자꾸 오류가 난다. ㅠ.ㅠ
이게 몇번째 시도하는건지....^^

profile
IT기획/운영

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기