iOS事件-加速計陀螺儀

傳感器

傳感器是一種感應(yīng)\檢測裝置, 目前已經(jīng)廣泛應(yīng)用于智能手機上内边,用于感應(yīng)\檢測設(shè)備周邊的信息,不同類型的傳感器, 檢測的信息也不一樣

iOS中傳感器

590107-b80b8936f8277f84.png

核心運動框架-CoreMotion.framework

我們可以使用iOS提供給我們的CoreMotion 框架來訪問加速度器和陀螺儀的相關(guān)數(shù)據(jù)晒他!
它不僅僅提供給你獲得實時的加速度值和旋轉(zhuǎn)速度值秸侣,更重要的是改淑,蘋果在其中集成了很多算法亮蛔,可以直接給你輸出把重力加速度分量剝離的加速度痴施,省去你的高通濾波操作,以及提供給你一個專門的設(shè)備的三維attitude信息究流!

加速計

590107-98de475675ae93b7.png

加速度計的原理很簡單辣吃,現(xiàn)在手機里面基本配備的都是3維線傳感器,也就是說芬探,用來測量x神得,y,z三個軸上的加速力偷仿。加速力就是當(dāng)物體在加速過程中作用在物體上的力哩簿,就好比地球引力,也就是重力酝静。

陀螺儀

1795722-b93020a639168c7e.png

陀螺儀可以檢測設(shè)備的持握方式节榜,原理是檢測在X、Y形入、Z軸上的角速度全跨,當(dāng)物體運動方向偏離預(yù)定方向時缝左,陀螺儀可以檢測出來

CoreMotion處理的數(shù)據(jù)有三種

  • 加速度值CMAccelerometerData
  • 陀螺儀值 CMGyroData
  • 設(shè)備motion值 CMDeviceMotion

CMDeviceMotion屬性

  • attitude: 手機當(dāng)前空間位置姿勢
  • gravity : 重力信息亿遂,重力加速度矢量在當(dāng)前設(shè)備的參考坐標(biāo)系中的表達
  • userAcceleration: 加速度信息
  • rotationRate: 即使旋轉(zhuǎn)速率,陀螺儀輸出
1.對加速度器和陀螺儀相關(guān)的訪問渺杉,都被封裝在CoreMotion.framework框架下的CMMotionManager類中蛇数。
我們通過使用類的方法,來得到我們想要的加速度數(shù)據(jù)和陀螺儀數(shù)據(jù)是越。
2. isAccelerometerAvailable方法用來查看加速度器是否可用耳舅。
3. isAccelerometerAvailable方法用來查看加速度器的狀態(tài):是否Active(啟動)。
4.同理isGyroAvailable方法和isGyroActive方法用來檢測陀螺儀。
5.獲取加速度器和陀螺儀的數(shù)據(jù)浦徊。主要有兩種方式:
push方式
這種方式馏予,是實時獲取到Accelerometer的數(shù)據(jù),并且用相應(yīng)的隊列來顯示盔性。即主動霞丧。
pull方式
就是獲取數(shù)據(jù),如果要顯示冕香,就要向Accelerometer來索要數(shù)據(jù)蛹尝。即:被動的方式。

簡單調(diào)用

加速計push方式

// 初始化
    self.manger = [[CMMotionManager alloc] init];
    //  設(shè)備是否支持
    if (![self.manger isAccelerometerAvailable])
    {
        NSLog(@"加速計不可用");
    }
    
    // 采樣頻率
    self.manger.accelerometerUpdateInterval = 1;

    [self.manger startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
        if (error) return;
        
        // 獲取加速計的信息
        CMAcceleration acceleration = accelerometerData.acceleration;
        NSLog(@"x:%f y:%f z:%f", acceleration.x, acceleration.y, acceleration.z);
    }];
    
  // 結(jié)束
    [self.manger stopAccelerometerUpdates];

加速計pull方式

self.manger = [[CMMotionManager alloc] init];
    
    if (![self.manger isAccelerometerAvailable])
    {
        NSLog(@"加速計不可用");
    }

    [self.manger startAccelerometerUpdates];
    
    // 需要時獲取
    CMAccelerometerData *accelerometerdata = self.manger.accelerometerData;
    NSLog(@"x:%f y:%f z:%f", accelerometerdata.acceleration.x, accelerometerdata.acceleration.y, accelerometerdata.acceleration.z);
-(void)stopAction
{
    if ([self.manger isAccelerometerActive] == YES)
    {
        [self.manger stopAccelerometerUpdates];
    }
}

陀螺儀push方式

// 初始化陀螺儀
    self.manger = [[CMMotionManager alloc] init];
    
    if (![self.manger isGyroAvailable])
    {
        NSLog(@"陀螺儀不可用");
    }
    
    if (![self.manger isGyroActive])
    {
        [self.manger setGyroUpdateInterval:0.5];
        
        [self.manger startGyroUpdatesToQueue:[[NSOperationQueue alloc] init] withHandler:^(CMGyroData *gyroData  ,NSError *error){
        
            NSLog(@"Gyro Rotation x = %.04f", gyroData.rotationRate.x);
            NSLog(@"Gyro Rotation y = %.04f", gyroData.rotationRate.y);
            NSLog(@"Gyro Rotation z = %.04f", gyroData.rotationRate.z);
        
        }];
    }

    [self.manger stopGyroUpdates];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悉尾,一起剝皮案震驚了整個濱河市突那,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌构眯,老刑警劉巖愕难,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惫霸,居然都是意外死亡务漩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門它褪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饵骨,“玉大人,你說我怎么就攤上這事茫打【哟ィ” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵老赤,是天一觀的道長轮洋。 經(jīng)常有香客問我,道長抬旺,這世上最難降的妖魔是什么弊予? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮开财,結(jié)果婚禮上汉柒,老公的妹妹穿的比我還像新娘。我一直安慰自己责鳍,他們只是感情好碾褂,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著历葛,像睡著了一般正塌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天乓诽,我揣著相機與錄音帜羊,去河邊找鬼。 笑死鸠天,一個胖子當(dāng)著我的面吹牛逮壁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播粮宛,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼窥淆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了巍杈?” 一聲冷哼從身側(cè)響起忧饭,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎筷畦,沒想到半個月后词裤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡鳖宾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年吼砂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鼎文。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡渔肩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拇惋,到底是詐尸還是另有隱情周偎,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布撑帖,位于F島的核電站蓉坎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胡嘿。R本人自食惡果不足惜蛉艾,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衷敌。 院中可真熱鬧勿侯,春花似錦、人聲如沸逢享。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞒爬。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間侧但,已是汗流浹背矢空。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留禀横,地道東北人屁药。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像柏锄,于是被迫代替她去往敵國和親酿箭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容