여러분은 가만히 계세요 제가 모두 고장낼게요

IT 지식, PC 모바일 문제 해결 그리고 종종 애니 게임 일상생활 근황을 종종 올리고 있어요!

냐.한국 자세히보기

임베디드/SlimeVR

SlimeVR 트래커 KTracker PCB 제작하기 - 5차 주문 도착했습니다.

Kamilake 2022. 8. 13. 18:38
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

오랜만이에요 Kamilake 카미입니다. 이번 글에서는 간단한 개봉기와 센서에 대해 설명하도록 할게요.

도착한지는 꽤 되었는데 시간이 없어서 확인도 못해보다가 이제야 글을 쓰게 되었습니다 ㅠㅠ

 

SlimeVR 트래커 PCB JLCPCB에서 주문하기

(https://kamilake.com/565) 오늘은 이전에 만들었던 회로들을 주문해보도록 할게요 PCB 파일 업로드 https://cart.jlcpcb.com/quote? 페이지로 이동해서 먼저 위 파일을 올려줍니다. 사양 선택 Gerber 파일을..

kamilake.com

위에서 회로들을 주문한 게 드디어 택배로 도착했어요

저번에 주문한 회로와 크게 다르지 않지만 이번에는 QMC5883L 마그네토미터와 정품 6050/6500 IMU를 장착하게 되었습니다. (조만간 LSM6DSM이나 LSM9DSM을 달고 만들 것 같네요)

이 파란 박스를 열 때면 언제나 기분이 너무 좋은 것 같아요

변경사항은 저번 글에서 설명한 것과 완전히 같습니다.

여러분 또는 납땜이 어렵거나 귀찮은 분들을 위해 JLCPCB의 조립 서비스를 사용해서 완전히 조립된 완제품으로 주문했는데, 생각보다 아주 깔끔하게 도착했네요! (18650을 사용하신다면.. 후면 납땜은 매우 비싸기 때문에 여전히 직접 조립하는 편이 낫습니다)

그 후면 납땜 문제로 배터리 커넥터를 전면으로 옮기게 되어 3D 케이스를 약간 수정해야 합니다. 곧 Github에 업데이트해 놓도록 할게요!

배터리 또는 배터리 홀더와 결합하면 다음과 같은 모습이 됩니다.

UART 단자가 제거되었고 배터리 +/- 표시와 함께 단자 위치가 변경되었습니다. 배터리를 연결해도 전원이 켜지지 않는다면 보호회로를 리셋하기 위해 Type-C 단자에 충전기를 잠시 물렸다 분리해보세요, 바로 전원이 켜질 거예요

MPU-6050은 자력계가 없는 6축 IMU입니다. 굉장히 오래되었지만 명품입니다.  거의 모든 환경에서 사용할 수 있고 유명하고, 관련 데이터시트와 문서도 많고 재고도 넘쳐흐릅니다.

그리고 그 친구 중에 유명한 9축 IMU인 MPU-9250이 있습니다. 가격은 비싸지만 9축 모션 센서는 주변 자기장을 파악해 본체가 있는 위치를 찾아내 스스로 자이로스코프의 틀어짐을 보정할 수 있기 때문에 Yaw의 회전각을 알 방법이 없는 상황에서 절대 위치를 찾는 거의 유일한 방법입니다. SlimeVR 프로젝트의 많은 사람들이 그래서 9축 IMU를 사용해 Yaw 보정을 수행 중이죠.

물론, FXAS21002C처럼 엄청나게 정밀하고 조용한 자이로스코프를 가져서 아무 보정 없이 깡 성능으로 Yaw가 안 틀어지는 IMU도 있고, 6050보다 시끄럽지만 빌트인 Cortex-M0에서 돌아가는 매우 정교한 칼만 필터 기반의 SH-2 펌웨어 덕분에 6축임에도 틀어짐을 스스로 보정하는 BNO08X 같은 IMU도 있습니다. 이들은 자기장 영항을 받지 않고 모든 것을 보정하는 대신 매우 비싸고 구하기조차 힘든 상황에 처해 있습니다. 그리고 언제까지나 상대적인 쿼터니언을 계산하기 때문에 반드시 틀어집니다.

그래서 주변 자기장 환경을 기억하고 스스로 보정할 수 있어야 하는데, MPU-9250은 6050보다 5배 이상 비싸고, 6050보다 더 나쁜 자이로스코프 감도를 갖고 있습니다.
그래서 저렴하고 정밀한 6050의 성능을 그대로 사용하면서, 시간이 지남에 따라 쌓이는 Yaw의 오차를 보정하기 위해 1달러짜리 자력계인 QMC5883L을 추가했습니다.
QST사의 QMC5883L은 허니웰의 HMC5883 대체품인데 저렴한 가격과 더 높은 성능으로 인기를 끌고 있습니다. 반도체 대란이지만 여전히 재고도 충분하고요!

 

QMI8610 센서 모듈 만들기. GY-8610

6축 IMU중에 QMI8610이라는 친구가 있습니다. 6mdps/√hz로 낮은 자이로 노이즈를 갖고 있어서 써보려고 했는데 센서가 나름 비싸더군요. 위 사진은 알리익스프레스에 있는 테스트보드인데 개당 12달

kamilake.com

참고로 QST사의 다른 제품으로 QMI8610이라는 6축 IMU도 있어요, 유명하진 않지만 DMP도 갖고 있기에 이번 프로젝트에 적당하다 싶어서 같이 주문했는데, 관심 있으시면 위 포스트를 확인해보세요.

정리하면,

MPU-9250은 자력계가 있는 대신 자이로스코프 감도가 나쁘고 가격이 매우 비쌉니다.
그리고 MPU-6050은 감도가 좋은 대신 자력계가 없습니다.

MPU-6050이 가진 DMP는 I2C로 외부 자력계를 입력받을 수 있기 때문에 6050이 가진 좋은 감도와 저렴한 가격과 함께 9250이 가지는 자력계를 사용한 DMP 퓨전까지 한 번에 쓸 수 있는 겁니다.

그러기 위해 이제부터 소프트웨어를 만들어야 합니다..

다음 글에서는 자력계가 어떻게 Yaw를 보정하는지와 함께 작성한 코드, 그 코드로 보정하는 내용을 올려보도록 하겠습니다.

이 글이 도움이 될 수 있으면 좋겠습니다. 

 

PCB에 관심이 있으시다면 jlcpcb.com/KOR 링크를 통해 JLCPCB에 가입하고 최대 54달러 쿠폰을 발급받으세요 :)