꼬부기의 끄적끄적
MoonWalker MW-AHRSv1 CAN으로 사용하기 본문
MW-AHRSv1 이라는 제품은 CAN 통신을 통해 사용할 수 있습니다.
출처: https://www.devicemart.co.kr/1310790
MCU등을 위한 C기반 소스 코드는 github에서 다운로드 가능합니다.
git 주소: https://github.com/psh117/MW-AHRSv1
사용법은 코드를 다운로드 받은 뒤, 프로젝트에 포함시키면 됩니다.
1. 구조체
MW_AHRS 라는 구조체는 MW-AHRSv1과 교환 가능한 데이터들을 모아두고 있습니다.
구조체 맴버 중
가속도, 각속도, 오일러각, 지자기등은 그냥 사용하시면 됩니다.
raw_data는 debug할 때만 사용하시면 됩니다.
can_read_data는 CAN Device로 부터 수신받은 8바이트의 데이터를 복사해 주시면 됩니다.
can_write_data는 실제 CAN Device (MCU나 DSP에서 구현된 장치)를 통해 8바이트를 전송하시면 됩니다.
2. 함수
수신 받고싶은 데이터를 선택하여 can_write_data에 프로토콜을 만들어 냅니다.
사용은 1, 사용을 원치 않으면 0을 넣으면 됩니다.
이 함수 호출 후, can_write_data에 저장된 8바이트의 데이터를 CAN Driver로 보내면 됩니다.
MW-AHRSv1의 데이터 전송 주기를 설정합니다. time은 ms 단위입니다.
이 함수 호출 후, can_write_data에 저장된 8바이트의 데이터를 CAN Driver로 보내면 됩니다.
3. 사용법 예제
공사중
void CAN_RX_INTERRUPT()
{
...
memcpy(can_recv_data,
}
2016 졸업작품 소스코드 예제:
https://github.com/psh117/Jack-Spherobot/blob/master/jack-spherobot/Sources/main.c