iOS开发之──传感器使用 (转载)

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

AD:WOT2015 互联网运维与开发者大会 热销抢票

在实际的应用开发中,会用到传感器,下面首先介绍一下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 条评论
登录 后参与评论

相关文章

来自专栏IT 指南者专栏

愚蠢的简历长什么样

最近招实习生,收到了二十多封 CV,有很多有趣的事情,写出来既当作笑料分享,也可给小孩子们做做训练,免得走弯路:

1594
来自专栏CDA数据分析师

颁奖乌龙就算了,怎么还性别歧视,好莱坞电影怎么了?数据笑而不语

原作者 Amber Thomas 编译 CDA 编译团队 Mika 本文为 CDA 数据分析师原创作品,转载需授权 颁奖乌龙 第 89 届奥斯卡颁奖典礼昨日落...

2009
来自专栏非著名程序员

IT从业人员面试小技巧

一般来说,面试你的人都不是一个很好对付的人。别看他彬彬有礼,看上去笑眯眯的,很和气的样子。但没准儿一肚子坏水。 有些人待人特别客气,说话还稍稍有点结巴的,更容易...

2049
来自专栏CreateAMind

原则一书的管理干货

... 2) Realize that you have nothing to fear from truth. Understanding, accepti...

1261
来自专栏生活

如果非要在这份爱加一个期限,我希望是一万年

阅读 101 童琪琳 在我很小很小的时候,我就认识一个人。 ? ? ? 她教我走路、说话,教给我做人的道理。 ? 在我童年的印象中,她是一个快乐的人, ? ...

2775
来自专栏程序人生

Podcast: 过去一周有啥程序人生?

受小道君的启发,今天来点不一样的,用语音介绍我过去一周听的podcast,玩过的github repo和读过的hacker news。 Podcast 我每周大...

3598
来自专栏新智元

哈佛超柔性机器人把水母握手心 ,还可下海活捉章鱼

【新智元导读】近期哈佛大学的研究人员研发了一款十二面体的“折纸花瓣”柔性机械臂RAD,能够抵达人类无法到达的深海,捕捉海底世界的软体动物并将其完好无损地带回陆地...

1041
来自专栏FreeBuf

为什么成为一名程序员这么难?

有人说,每个看起来与正常人无异的工程师,其实都是在学习程序开发的途中熬过、压抑过、而且创伤过的反社会人士(sociopaths)。 在学习程序开发的过程中,常常...

2035
来自专栏腾讯数据中心

积水成渊——数据中心用水效率分析

引言 现在人们一提起数据中心,首先想到的关键词是PUE(数据中心电力使用效率的衡量指标),由此可见人们对数据中心电力资源的重视程度。而另外一种资源——水,却往往...

3783
来自专栏企鹅号快讯

编程难,首先入门就难

“Hello,world”,其实并不像你想象的那么简单。 某虽不才,小学稀里糊涂的拿过县里奥数三等奖,95年就能用小霸王学习机(Basic)打出杨辉三角形,高中...

2995

扫码关注云+社区

领取腾讯云代金券