?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

갈릴레오Gen2/아두이노/센서

페이지 정보

작성자 이현지 메일보내기 이름으로 검색 작성일15-07-13 15:38 조회4,484회 댓글5건

본문

안녕하세요! 아두이노의 통신 방법, 핀 정리 (Serial, UART, Software Serial, SPI, I2C)에 대한 포스팅 된 글 잘 읽었습니다! 저는 센서(mySen-C)의 RX와 TX를 갈릴레오 보드의 TX와 RX에 연결시켜서 서로 통신하게끔 했는데요, 아두이노를 통해 센서를 통해 얻은 값을 확인 하고 싶은데 스케치예제를 알 수 있을 까요..? 제가 아두이노를 처음 사용 하는 터라 아직 많이 부족합니다 ㅠㅠ

센서는 9축센서(가속도, 자이로,지자기센서)입니다.

다른 예제들을 보면 아날로그 핀을 사용하는데 저는 갈릴레오 보드의 RX/TX/GND/VCC만을 사용해 센서로 부터 값을 받고자 합니다. 디지털핀을 사용한 오픈 소스를 찾기 힘들어서 질문 드립니다 ..!

댓글목록

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

디지털 핀/아날로그 핀의 문제가 아니라 센서가 어떤 인터페이스로 통신하도록 설계되어 있나가 중요한데, Serial 통신을 하도록 되어있나요? I2C 를 지원하는 센서인가요?

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

그럼 센서 모델명을 검색해서 예제코드나 라이브러리를 구해보세요. 아마 전용 라이브러리가 있을텐데 그 라이브러리 이용해서 값을 가져와야 할 것 같아요

이현지님의 댓글

이현지 이름으로 검색 댓글의 댓글 작성일

답변 감사합니다^-^! 센서 회사 측에 연락을 했더니 ///데이터 읽기

HANDLE _hSerial;
char* buffer = null;
int nInertialDataLen = 24;
int nEulerDataLen = 12;
int nQuternionDataLen = 14;
int nInertial_EulerDataLen = 30;
int nInertial_QuternionDataLen = 32;
int nDCMDataLen = 24;


 int Read( char* data , int nMaxLength )
 {
DWORD dwReadByte = 0;

if( !ReadFile ( _hSerial, data, nMaxLength, &dwReadByte, NULL ) )
{
return -1;
}

DataParsing( data, dwReadByte, nEulerDataLen );

 }


 //////데이터 받기
 void DataParsing( char* data, DWORD dwReadByte, int nDataTypeLen )
 {



for( int i = 0; i < dwReadByte; i++ )
{
if( data[i] == 0x02 )
{
if( data[i + ( nDataTypeLen - 2 ) ] == 0x2C && data[i + ( nDataTypeLen - 1 ) ] == 0x03 )
{

buffer = (char*)malloc(sizeof(char) * nDataTypeLen );
memcpy( buffer, data, nDataTypeLen);

if( CheckSum( buffer, nDataTypeLen) != true )
return;

EulerDataParsing();

}
}
}


 }
 이걸 보내주시더라구요. 이를 아두이노 함수로 변경하면 될까요..?
위의 코드와 함께 센서 드라이버를 보내주셨는데 C파일이예요. 이는 또 어떻게 깔아야하는지... 질문이 좀 그런가요 ㅠㅠ 제가 아직 초보라 부탁드립니다..!

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

네 아두이노 스케치 파일안에 함수들을 넣어두고 문제점들을 하나씩 수정해 나가셔야 합니다. 일단 Serial 통신에서 데이터를 읽는 부분부터 하나씩 수정해보세요.