brunch

You can make anything
by writing

C.S.Lewis

by 메이커k May 02. 2018

6/10 균형_이론



균형을 잡기 위해 필요한 센서 mpu6050 이다. 왜 하필이 이것이냐 한다면 적당히 괜찮고, 싸다. 알리기준 1달러 남짓한다. 사용은 vcc, gnd 기본이니 연결하고, scl, sda, int 연결하면 example 코드를 실행해 볼 수 있다. 센서 표면에는  x, y 방향과 회전을 의미하는 화살표도 표시되어 있다.


사실 균형을 이해하려면 오일러 앵글 넓고 얇은 지식이 필요하다. 오일러 앵글 yaw, pitch and roll 도 알아야 하지만 구현을 위해 필요한 정보만 가져간다. mp6050 센서 기준 yaw 정보만 센서에서 얻도록 한다. 바퀴를 앞으로 돌릴것이야 뒤로 돌릴것이야만 얻으면 되기 때문이다. 센서와의 바퀴와 방향이 중요한데 센서 머리 기준으로 회전이다. 센서는 3축 방향에 대한 회전 값을 얻을 수 있으나 우리는 바퀴 회전에 축에 해당하는 yaw 값만 사용하기로 한다 단위는 라디안값이다. 기본 코드를 이해하는게 쉽고, 응용코드에는 balance bot에 맞게 확장 되었다. 조립은 이론과 개념을 모르면서 만들어도 설명대로 잘 연결 하면 움직이기는 한다.  다 알고 하면 너무 속도가 느리기 때문이다. 선조립 후이해. 먼저 만들고 나면 이해하는 것도 빠르다.


중요한 것은 센서로 부터 6축에 대한 정보를 얻을 수 있다. 자이로 센서값 x,y,z 가속도 x,y,z 총 6가지 값 중에

필요한 값은 자이로 센서값 x 또는 y 하나만 쓴다. 필요한 값은 무게중심을 두고 세웠을때 앞으로 기울였는지, 뒤로 기울여져 있는지에 대한 부호이고, 그 크기값이 필요하다. 앞으로 기울어저 있으면 바퀴를 뒤로 돌려서 일으키고, 뒤로 기울어져 있으면 그 반대이다. 이는 부호로 판단한다. 그리고 이에 대한 크기 값도 필요하다. 많이 기울어져 있으면 바퀴도 더 세게 움직여야 넘어지지 않는다. 크기는 라디안이고 이런 이야기도 중요하나 소스 코드속에 녹아져 있으나 큰 이해만 하고 넘어가도 좋다. 사실 상세 코드는 훨씬 더 길다.


소스코드

매거진의 이전글 2/10 things 2
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari