32F429IDISCOVERY CubeIDE에서 LL 드라이버로 BNO080 제어 -1

2019. 8. 26. 00:07임베디드/32F429IDISCOVERY

쿼터니언(사원수)는 로보틱스나 컴퓨터 그래픽스에 3차원 회전을 표현하는 데 있어 많이 사용한다. 기존 행렬 연산보다 데이터량과 연산 속도면에서 월등히 앞선다는 장점이 있다

 

[참고 1] https://showmiso.tistory.com/57

[참고 2] https://enghqii.tistory.com/63

 

BNO080은 센서 내부에 MCU가 내장되어 있어, 센서 내부에서 자체 연산을 한 이후에, 사원수 형태로 회전 각도를 내보내준다. 아직까지 가격이 MPU 시리즈보다 높지만, 개발 시간이 단축된다는 점에서 매력적인 선택이라고 할 수 있다

 

다음은 쿼터니언 값을 출력해주는 최대 주파수가 나온다

 

 

데이터 파싱을 지원하는 모드는 총 4가지가 지원되며, SPI가 가장 빠른 축에 속하는 프로토콜이다

 

 

그리고 SPI 동작에 대한 설명이다

 

 

 

MCU가 BNO080에 접근하려면 PS0/wake 핀을 Low로 떨어뜨려야 한다. 그리고 BNO080은 데이터를 전달할 준비가 되었다면 H_INTN 핀이 Active Low로 바뀌게 된다. 이후에 SPI 통신으로 데이터를 파싱하는 구조다

 

 

데이터를 어떠한 레지스터에 접근해서 어떻게 데이터를 SPI로 파싱할지는 Sparkfun에서 제공하는 아두이노 라이브러리를 이용할 것이다