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。

2012年5月14日 星期一

四旋翼計劃_尋求贊助

這幾天查了許多關於ArduPilot的資料http://code.google.com/p/ardupilot-mega-tw/wiki/Home?tm=6
配備齊全,玩家多,資料豐富,問題是照著這種方案下去實在是會花不少錢,沒關西我想窮有窮的玩法,有錢人有有錢人的玩法><~,所以小弟我從以前跟朋友從超便宜遙控車拆下來的遙控器電路板拿來用,接收距離大概才5公尺左右吧...而且干擾的還很嚴重,經過Arduino的實測之後都還可以接收使用,我可以控制4種狀態,因為他原本是控制兩顆馬達的正反轉4條線,第一組10、01 第二組10、01 這四種狀態可以發送至我的Arduino,那麼最基本的四旋翼自主平衡我打算使用之前CATCAN公司大大贊助我們機器人研究社去做測試的SmartSensor http://www.catcan.com.tw/products/smartsensor-series/imu
該感測器具有高級的姿態演算法並且每秒會回傳20次以上的值,傳輸協定是I2C,Arduino上的寫法近期有成果再回報囉。


Arduino連結遙控接收板

焊好的電調電源

通電之後也沒問題


SmartSensor
今天一直在測試電調的設置,因為他的PWM訊號通常都可以由遙控器去做控制,高電位才可以進入設置的模式,該電調可以設置7種狀態的參數詳情請見說明書,進入之後聽到逼逼聲之後要轉換高低電位才能夠確認,因此我在這種沒有遙控器的方法之下只能寫個簡單的Arduino程式來使用電腦的Serial monitor控制我的PWM訊號,以下是我寫的Arduino程式控制pin9的PWM訊號程式


void setup() {              

  pinMode(9, OUTPUT);
  Serial.begin(115200);
  delay(500);
}

int incomingByte = 0;

void loop() {
   if (Serial.available() > 0) {
                incomingByte = Serial.read();
                if(incomingByte == 48){
                  analogWrite(9, 100);
                  Serial.println("low");
                }else{
                  analogWrite(9, 220);
                  Serial.println("high");
                }
                Serial.print("I received: ");
                Serial.println(incomingByte,DEC);
        }

}

程式寫的似乎不太好,因為當我輸入不是1或0時常常會有失控的現象,我認為非0應該就會跑else才是,但是卻會有跳0又跳1的現象發生,我不知道原因,不過輸入1和0就不會有這種問題。

另外真的希望有人可以贊助我們社團做這些研究,謝謝。

2012年5月10日 星期四

四旋翼計劃

本計劃是希望以後社團招生可以利用四旋翼做大大的宣傳,也可以讓想學習Arduino、ADK、手機等等有個有趣的應用平台,以後大家拿來做專題也是非常好的一個想法,所以我就在露天拍賣買了一套的四旋翼零件除了飛控板。


這幾天稍為跟社員們測試了一下,威力還蠻強大的,可是他正反槳的外圍沒有保護的裝置,我覺得這相當的危險,並且我們是在完全沒有飛行控制基礎的條件下去研究的,如果有對四旋翼小有研究的同好們,希望可以給我們一點建議,或是控制飛行的理論資料的謝謝。


好盈 SkyWalker-20A 無刷電變(四顆)/HobbyWing/天行者/普及版[KK032-1]*1
450級930KV無刷馬達(四顆)(附子彈頭/槳夾)/A2212/X2212[KK052-1]*1
外銷歐美高品質10吋正反槳/黑色/1045/六軸/四軸/三軸/二軸/多軸[KK004-4]*4
TURNIGY 11.1V 2200MAH 20C*2+電池專用袋[Su5]*1
IMAX B6 充電器+電源供應器/變壓器[PW001-1]*1
新款SK450四軸機架,歡迎搶購!!![SK450]*1




電調說明書:http://www.fftrc.com.tw/card.pdf
充電器說明書:http://www.fftrc.com.tw/download_B6.php
這是我大至上的購買商品
購買網站:http://www.fftrc.com.tw/download_card.php


SK450四軸機架

IMAX B6 充電器

10吋正反槳/黑色/1045
11.1V 2200MAH 20C*2

大致上組裝完