Devantech SRF-08 Ultrasonic Range Finder

Source (FishEye) : FishEye link address, DevantechSrf08_V1.0_20120731.tgz
Issue Tracker (Jira) : Jira link address

Devantech SRF08

1.       개요

Devantech사에서 개발한 SRF-08 초음파 거리 센서를 위한 API이다. 이 센서는 I 2 C 통신을 통해서 측정된 거리 값을 얻을 수 있다. 그래서 I2C 클래스를 상속받아 구현된 API가 필요하다. 이 장치에 대한 자세한 정보는 아래의 홈페이지를 참고.

- http://www.robot-electronics.co.uk

 

2.       파라미터 정보

이 API를 동작시키기 위해서는 parameter 에 다음의 정보를 포함하고 있어야 한다.

 

Name

Data Type

Description

Size

int

센서의 개수

X

double

첫 번째 센서의 X축 방향의 거리

Y

double

첫 번째 센서의 Y축 방향의 거리

Z

double

첫 번째 센서의 Z축 방향의 거리

Roll

double

X축을 중심으로 회전한 각도

Pitch

double

Y축을 중심으로 회전한 각도

Yaw

double

Z축을 중심으로 회전한 각도

I2CApiName

string

I2C API의 이름

 

3.       인터페이스

3.1.    Initialize

초음파센서의 초기화 정보( parameter )를 이용하여 초기화 시킨다.

 

Declaration

int Initialize (Property parameter)

Arguments

parameter: 초음파센서 초기화에 필요한 정보

Return Value

API_SUCCESS: 성공적으로 초음파센서를 초기화 시킨 경우

API_ERROR: 초음파센서를 초기화 시키는 도중 에러가 발생한 경우

 

3.2.    Finalize

초음파센서를 종료시킨다.

 

Declaration

int Finalize(void)

Arguments

없음

Return Value

API_SUCCESS: 성공적으로 초음파센서를 종료 시킨 경우

API_ERROR: 초음파센서를 종료시키는 도중 에러가 발생한 경우

 

3.3.    Enable

초음파센서를 활성화 시킨다.

 

Declaration

int Enable(void)

Arguments

없음

Return Value

API_SUCCESS: 성공적으로 초음파센서를 활성화 시킨 경우

API_ERROR: 초음파센서를 활성화시키는 도중 에러가 발생한 경우

 

3.4.    Disable

초음파센서를 비활성화시킨다.

 

Declaration

int Disable(void)

Arguments

없음

Return Value

API_SUCCESS: 성공적으로 초음파센서를 비활성화 시킨 경우

API_ERROR: 초음파센서를 비활성화 시키는 도중 에러가 발생한 경우

 

3.5.    SetParamter

초음파센서의 설정 정보를 변경한다.

 

Declaration

int SetParameter(Property parameter)

Arguments

parameter: 설정 정보

Return Value

API_SUCCESS: 초음파센서의 파라미터를 성공적으로 변경시킨 경우

API_ERROR: 초음파센서의 파라미터를 변경시키는 도중 에러가 발생한 경우

 

3.6.    GetParameter

초음파센서의 설정 정보를 얻어온다.

 

Declaration

int GetParameter(Property &parameter)

Arguments

parameter: 설정정보가 저장될 변수

Return Value

API_SUCCESS: 성공적으로 초음파센서의 파라미터를 얻어온 경우

API_ERROR: 초음파센서의 파라미터를 얻어오는 도중 에러가 발생한 경우

 

3.7.    OnExecute

컴포넌트의 Callback API 중 onExecute에서 호출되는 함수로, 주기적으로 동작해야 하는 코드가 여기에 작성해야 한다. 이 API에서는 사용되지 않음

 

Declaration

int OnExecute(void)

Arguments

없음

Return Value

API_NOT_SUPPORTED

 

3.8.    GetStatus

초음파센서의 현재 상태를 반환한다.

 

Declaration

DEVICE_STATUS GetStatus(void)

Arguments

없음

Return Value

DEVICE_STATUS

DEVICE_STATUS의 자세한 정보를 OPRoS Device API 문서 참고

 

3.9.    GetSensorValue

초음파센서의 측정 데이터를 읽어온다. sensorValue의 크기가 읽어온 데이터의 개수이다.

 

Declaration

int GetSensorValue(vector<double> &sensorValue)

Arguments

sensorValue: 측정된 데이터가 저장될 변수

Return Value

API_SUCCESS: 성공적으로 초음파센서의 값을 읽어온 경우

API_ERROR: 초음파센서의 값을 읽는 도중 에러가 발생한 경우

 

4.       컴포넌트 프로파일의 Property 설정 예제

이 API를 사용하기 위해 I2C 디바이스로 Devantech의 USB-to-I2C를 사용하였으며, 이 장치를 내부적으로 직렬통신을 사용하기 때문에 SerialCommunication API도 같이 사용된다. 그래서 실행 할 때 DevantechSrf08.dll(so), DevantechUsbToI2C.dll(so), Serial Communication.dll(so)이 필요하다.

 

< properties >

  <!--               Properties for Devantech SRF-08                             -->

  < property name = " ApiName " type = " string " > DevantechSrf08.dll </ property >

  < property name = " Size " type = " int " > 1 </ property >

  < property name = " X0 " type = " double " > 0.0 </ property >

  < property name = " Y0 " type = " double " > 0.0 </ property >

  < property name = " Z0 " type = " double " > 0.0 </ property >

  < property name = " Roll0 " type = " double " > 0.0 </ property >

  < property name = " Pitch0 " type = " double " > 0.0 </ property >

  < property name = " Yaw0 " type = " double " > 0.0 </ property >

 

  <!--               Properties for Devantech USB-to-I2C               -->

  < property name = " I2cApiName " type = " string " > DevantechUsbToI2C.dll </ property >

  < property name = " AddressMode " type = " int " > 0 </ property >

 

  <!--               Properties for Serial Communication               -->

  < property name = " UartApiName " type = " string " > SerialCommunication.dll </ property >

  < property name = " PortName " type = " string " > COM3 </ property >

  < property name = " TimeOut " type = " int " > 100 </ property >

  < property name = " BaudRate " type = " int " > 19200 </ property >

  < property name = " DataBits " type = " int " > 8 </ property >

  < property name = " StopBits " type = " int " > 0 </ property >

  < property name = " Parity " type = " int " > 0 </ property >

  < property name = " FlowControl " type = " int " > 0 </ property >

</ properties >

 

 

 

 

  • No labels