IOS开发之──传感器使用

在实际的应用开发中,会用到传感器,下面首先介绍一下iphone4的传感器,然后对一些传感器的开发的API作一简单介绍

一、 iPhone 4的传感器技术

      进入正题,iPhone 4到底用上了哪些传感器呢?

      1) 影像传感器

      简单说就是相机镜头,由于只牵涉到微光学与微电子,没有机械成份在里头,即便加入马达、机械驱动的镜头,这类的机械零件也过大,不到「微」的地步,所以此属于光电半导体,属于光学、光电传感器。

      2) 亮度传感器

      外界并不清楚iPhone 4用何种方式感应环境光亮度,而最简单的实现方式是用一个光敏电阻,或者,iPhone 4直接用影像传感器充当亮度侦测,也是可行。无论如此,此亦不带机械成份,属于光电类传感器,甚至可能不是微型的,只是一般光学、光电传感器。

      3) 磁阻传感器

      简单讲就是感测地磁,这样讲还是太学名,感应地磁就是指南针原理,将这种地磁感应电子化、数字化,就称为数字指南针(Digital Compass)。老实说,数字指南针技术比较偏玩具性,因为用来感测地磁的磁阻传感器,很容易受环境影响(如高压电塔旁、马达旁),必须时时校正才有用。

      磁阻传感器目前没有被视为热门的MEMS组件,有些MEMS组件会追加整合磁阻感测能力(如ADI的产品,且目标应用是鱼雷用途),但一般而言磁阻传感器尚无迫切微型化的迹象。

      4) 近接传感器

      近接传感器的实现技术非常多种,可以是红外线(例如便利商店的自动门、男生公共厕所的自动冲水器)、可以是超音波、雷射等,太多太多。同样的,Apple没讲,我们只能乱猜或尽可能网搜,不过,近接传感器也没有迫切微型化的需要,不在热门MEMS组件之列。

      5) 声波传感器

      学名声波传感器,俗名麦克风。是的,iPhone 4 为了强化声音质量,使用2组麦克风与相关运算来达到降噪(降低噪音)的效果,这种技术称为数组麦克风(Array MIC),事实上早在Apple实行之前,2004年Wintel就已经在PC上提出过,差别是Apple用于手机,Wintel用于PC。

      麦克风需要微型化吗?是的,需要,相当需要,且使用一个以上的麦克风,麦克风的体积缩小需求就更迫切,麦克风也牵涉到机械(声波会使微型机械振动),并将机械振动转换成电子信号,因此微型化的麦克风,是个不折不扣的MEMS传感器。

      6) 加速度传感器

      俗称加速规、G-Sensor,可以感应物体的加速度性。事实上加速度传感器的实现方式也是许多种,MEMS只是手法之一,用MEMS实现加速度传感器确实是目前的趋势。

      加速度传感器一般有「X、Y两轴」与「X、Y、Z三轴」两种,两轴多用于车、船等平面移动为多,三轴多用于飞弹、飞机等飞行物。而不用多说,Wii遥控器也是用三轴,iPhone可以感应实体翻转而自动对应翻转画面,也是靠这个传感器。

      7) 角加速度传感器

      更简单讲就是陀螺仪,陀螺仪实现技术有机械式与光学(红外线、雷射)式,第六项的加速度传感器比较能感测平移性,但对于物体有个轴心,进行角度性的移动,则其感应效果不如陀螺仪好,所以许多应用多半是混何使用加速度传感器与陀螺仪,而今iPhone 4也从善如流。不过,iPhone 4确实是率先使用陀螺仪的手机。


二、常用使用方法

    在我们应用中应用最多有加速度传感器,角度加速度伟感器,这两个主要应用在需要重力感应的应用中,在公开的API中UIAccelerometer类实现相应的功能;磁阻传感器主要应用于需要指示方向的应用中,在公开的API中CLLocationManager类实现相应的功能,上述几个使用方法今天不作介绍;而影像传感器和亮度传感器的使用方法,是否有公开的API,限于本人的学术水平,还未查到使用方法;今天主要介绍近接传感器的用法,代码如下:


[[UIDevice currentDevice] setProximityMonitoringEnabled:YES];

[[NSNotificationCenter defaultCenter] addObserver:self

                                         selector:@selector(sensorStateChange:)

                                             name:@"UIDeviceProximityStateDidChangeNotification"

                                           object:nil];


-(void)sensorStateChange:(NSNotificationCenter *)notification;

{

    if ([[UIDevice currentDevice] proximityState] == YES) {

        NSLog(@"Device is close to user");

        //在此写接近时,要做的操作逻辑代码

    }else{

        NSLog(@"Device is not close to user");

    }

}



  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
  在iOS应用开发中有很多涉及硬件访问和传感器编程。本书我们将向大家介绍苹果iOS设备主要的传感器应用开发。本书是我们智捷iOS课堂团队编写iOS系列丛书中的一本,目的是使一个有iOS开发基础的程序员通过本书的学习,能够开发iOS 硬件访问和传感器应用的程序。另外,对于没有iOS开发基础读者,我们推荐先阅读我们已经出版的《iOS开发指南——从0基础到App Store上线》(网站:http://www.iosbook1.com),这两本书都是我们编写的,知识体系衔接的很好。 更多关于本书内容请关注本书网站http://www.51work6.cn,本书页面http://www.51work6.cn/?page_id=1426 更多iOS开发相关视频教程请关注http://v.51work6.com    本书是介绍了iOS设备主要的传感器应用开发的相关知识,其中包括手势识别、加速度计、陀螺仪、指南针、磁力计、照相机、摄像头、音频设备访问、定位和蓝牙通信等。而且全部采用基于iOS 7最新的API。    全书分为9章:开篇综述、手势识别、加速度计与陀螺仪、指南针与磁力计、照相机与摄像头、音频设备访问、使用蓝牙、定位和iOS敏捷开发项目实战——增强现实版本铅锤应用。    第2章介绍了手势识别,通过两种方式实现iOS常用手势,这些手势包括了:Tap(点击)、Long Press(长按)、Pan(拖动)、Swipe(滑动)、Rotation(旋转)和Pinch(手指的合拢和张开)。    第3章介绍了加速度计与陀螺仪,加速度计与陀螺仪是可以感知设备运动的两个传感器,通过这些传感器,我们可以开发出很多有趣的应用和游戏。    第4章我们介绍了磁力计,磁力计可以感知周围的磁场,可以开发指南针、罗盘等导航应用,还可以开发特斯拉计(或高斯计)等感知磁场强度的应用等。    第5章我们介绍了照相机与摄像头,对于iOS设备,它们事实上是一个硬件,这一章中我们介绍了图片抓取和视频捕获等技术。    第6章我们介绍了音频设备访问,音频的输入是通过麦克风设备实现,而音频的输出是通过扬声器设备实现的。本章我们介绍AVFoundation框架实现音频播放和音频录制。    第7章我们介绍了使用蓝牙,在蓝牙4.0之后将通信模式分为高速和低速类型。高速类型是传统蓝牙,在iOS中高速蓝牙通信开发可以通过Game Kit实现。低速类型被称为低功耗蓝牙(BLE Bluetooth low energy),可以连接一些量测型传感器,例如:心率监视器、血压计和温度计等,开发BLE可以通过CoreBluetooth.framework实现。本章我们重点介绍Game Kit和低功耗蓝牙通讯。    第8章我们介绍了定位技术,介绍了iOS设备如何实现定位应用开发,其中包括:定位服务编程、地理信息编码和地理信息反编码。此外,还介绍了苹果的微定位技术iBeacon,以及接近传感器。    第9章是项目实战,通过增强现实版本铅锤应用介绍了iOS敏捷开发过程。本项目中用到了视频捕获实现的增强现实技术,还有加速度计等传感器
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值