2012年5月24日 星期四

四旋翼-SmartSensor

http://www.catcan.com.tw/resources/file_download/smartsensorlitemanualv1.0.pdf?attredirects=0&d=1
CATCAN網站上有使用Arduino讀SmartSensor的接線和程式教學

#include <Wire.h> //library of arduino wire.h
byte Data[6]={0,0,0,0,0,0}; // data array used to receive data from sensor
uint8_t start_offset = 0x00;
float Pitch; // after divided by100, pitch should be float
float Roll; // after divided by100, pitch should be float
float Yaw; // after divided by100, pitch should be float
void setup()
{
Wire.begin();
Serial.begin(115200); // for serial monitoring
}

void loop(){
   Wire.beginTransmission(0x18); // indicate the slave address 0X18
   Wire.write(start_offset); // send the starting register address 0x00=pitch
   Wire.endTransmission();
   Wire.requestFrom(0x18, 6); // read 2 bytes from 0X18
   while(Wire.available()){
     Data[0]=Wire.read(); // first received data LSB
     Data[1]=Wire.read(); // second received data MSB
     Data[2]=Wire.read(); // first received data LSB
     Data[3]=Wire.read(); // second received data MSB
     Data[4]=Wire.read(); // first received data LSB
     Data[5]=Wire.read(); // second received data MSB
  }
  Pitch=(Data[1] <<8|Data[0] )*0.01; // combine MSB,LSB and divided by 100
  Roll=(Data[3] <<8|Data[2] )*0.01; // combine MSB,LSB and divided by 100
  Yaw=(Data[5] <<8|Data[4] )*0.01; // combine MSB,LSB and divided by 100
  Serial.print("X:");
  Serial.println(Pitch); // show pitch data on serial monitor
  Serial.print("Y:");
  Serial.println(Roll); // show pitch data on serial monitor
  Serial.print("Z:");
  Serial.println(Yaw); // show pitch data on serial monitor
  delay(1000);
}

接線方式:黑線是接地,綠線接VCC,藍線接Arduino上的SDA,黃線接Arduino上的SLC。

沒有留言:

張貼留言