在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子元器件>傳感器>

關于Android傳感器之完全解析

2018年09月24日 10:44 作者:工程師譚軍 用戶評論(0
  傳感器
?
  傳感器(英文名稱:transducer/sensor)是一種檢測裝置,能感受到被測量的信息,并能將感受到的信息,按一定規律變換成為電信號或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲、顯示、記錄和控制等要求。
?
  傳感器的特點包括:微型化、數字化、智能化、多功能化、系統化、網絡化。它是實現自動檢測和自動控制的首要環節。傳感器的存在和發展,讓物體有了觸覺、味覺和嗅覺等感官,讓物體慢慢變得活了起來。通常根據其基本感知功能分為熱敏元件、光敏元件、氣敏元件、力敏元件、磁敏元件、濕敏元件、聲敏元件、放射線敏感元件、色敏元件和味敏元件等十大類。
?
  主要作用
?
  人們為了從外界獲取信息,必須借助于感覺器官。
?
  而單靠人們自身的感覺器官,在研究自然現象和規律以及生產活動中它們的功能就遠遠不夠了。為適應這種情況,就需要傳感器。因此可以說,傳感器是人類五官的延長,又稱之為電五官。
?
  新技術革命的到來,世界開始進入信息時代。在利用信息的過程中,首先要解決的就是要獲取準確可靠的信息,而傳感器是獲取自然和生產領域中信息的主要途徑與手段。
?
  在現代工業生產尤其是自動化生產過程中,要用各種傳感器來監視和控制生產過程中的各個參數,使設備工作在正常狀態或最佳狀態,并使產品達到最好的質量。因此可以說,沒有眾多的優良的傳感器,現代化生產也就失去了基礎。
?
  在基礎學科研究中,傳感器更具有突出的地位。現代科學技術的發展,進入了許多新領域:例如在宏觀上要觀察上千光年的茫茫宇宙,微觀上要觀察小到fm的粒子世界,縱向上要觀察長達數十萬年的天體演化,短到 s的瞬間反應。此外,還出現了對深化物質認識、開拓新能源、新材料等具有重要作用的各種極端技術研究,如超高溫、超低溫、超高壓、超高真空、超強磁場、超弱磁場等等。顯然,要獲取大量人類感官無法直接獲取的信息,沒有相適應的傳感器是不可能的。許多基礎科學研究的障礙,首先就在于對象信息的獲取存在困難,而一些新機理和高靈敏度的檢測傳感器的出現,往往會導致該領域內的突破。一些傳感器的發展,往往是一些邊緣學科開發的先驅。
?
  傳感器早已滲透到諸如工業生產、宇宙開發、海洋探測、環境保護、資源調查、醫學診斷、生物工程、甚至文物保護等等極其之泛的領域。可以毫不夸張地說,從茫茫的太空,到浩瀚的海洋,以至各種復雜的工程系統,幾乎每一個現代化項目,都離不開各種各樣的傳感器。
?
  由此可見,傳感器技術在發展經濟、推動社會進步方面的重要作用,是十分明顯的。世界各國都十分重視這一領域的發展。相信不久的將來,傳感器技術將會出現一個飛躍,達到與其重要地位相稱的新水平。
?
  主要特點
?
  傳感器的特點包括:微型化、數字化、智能化、多功能化、系統化、網絡化,它不僅促進了傳統產業的改造和更新換代,而且還可能建立新型工業,從而成為21世紀新的經濟增長點。微型化是建立在微電子機械系統(MEMS)技術基礎上的,已成功應用在硅器件上做成硅壓力傳感器
?
  傳感器的組成
?
  傳感器一般由敏感元件、轉換元件、變換電路和輔助電源四部分組成。
?
  敏感元件直接感受被測量,并輸出與被測量有確定關系的物理量信號;轉換元件將敏感元件輸出的物理量信號轉換為電信號;變換電路負責對轉換元件輸出的電信號進行放大調制;轉換元件和變換電路一般還需要輔助電源供電
?
  主要功能
?
  常將傳感器的功能與人類5大感覺器官相比擬:
?
  光敏傳感器——視覺
?
  聲敏傳感器——聽覺
?
  氣敏傳感器——嗅覺
?
  化學傳感器——味覺
?
  壓敏、溫敏、
?
  流體傳感器——觸覺
?
  敏感元件的分類:
?
  物理類,基于力、熱、光、電、磁和聲等物理效應。
?
  化學類,基于化學反應的原理。
?
  生物類,基于酶、抗體、和激素等分子識別功能。
?
  通常據其基本感知功能可分為熱敏元件、光敏元件、氣敏元件、力敏元件、磁敏元件、濕敏元件、聲敏元件、放射線敏感元件、色敏元件和味敏元件等十大類(還有人曾將敏感元件分46類)。

  常用傳感器介紹與用法

  Android平臺支持三個大類的傳感器

  Motion sensors(運動傳感器)

  這些傳感器測量加速力,并沿三個軸的旋轉力。此類別包括加速度計,重力感應器, 陀螺儀和旋轉矢量傳感器。

  Environmental sensors (環境傳感器)

  這些傳感器測量各種環境參數,例如環境空氣溫度和壓力,照明和濕度。此類別包括氣壓計,光度計,和溫度計。

  Position sensors (位置傳感器)

  這些傳感器測量設備的物理位置。這個類別包括方向傳感器和磁力計。

  傳感器實現流程

  第一步:得到SensorManager

  SensorManager mSensorManager = (SensorManager) mContext

  .getSystemService(Context.SENSOR_SERVICE);12

  第二步:注冊傳感器

  Sensor sensor = mSensorManager

  .getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

  if (null != sensor)

  mSensorManager.registerListener(this, sensor,

  SensorManager.SENSOR_DELAY_NORMAL);12345

  registerListener這個方法有三個參數。

  第一個參數是傳感器數據變化的監聽器

  我們需要去實現SensorEventListener接口,他里面有兩個回調方法,

  @Override

  public void onSensorChanged(SensorEvent event) {

  //當傳感器的數值發生變化時調用

  }

  @Override

  public void onAccuracyChanged(Sensor sensor, int accuracy) {

  //傳感器的精度發生變化時調用

  }123456789

  onSensorChanged方法只有一個SensorEvent類型的參數event,其中SensorEvent類有一個values變量非常重要,該變量的類型是float[]。但該變量最多只有3個元素,而且根據傳感器的不同,values變量中元素所代表的含義也不同。

  關于values值的詳細含義請看參考文章!!!

  第二個參數是我們需要監聽的傳感器

  Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);1

  Sensor.TYPE_ACCELEROMETER則是Android設定傳感器類型,這里是指加速度傳感器,

  第三個參數是傳感器數據更新數據的速度

  有以下四個值可選,他們的速度是遞增的

  SENSOR_DELAY_UI

  SENSOR_DELAY_NORMAL

  SENSOR_DELAY_GAME

  SENSOR_DELAY_FASTEST

  傳感器的注銷

  //注銷所有傳感器對象

  public voidunregisterListener(SensorEventListener listener)

  //注銷指定的傳感器對象

  public voidunregisterListener(SensorEventListener listener, Sensor sensor)1234

  sensor的獲取依舊是通過SensorManager.getDefaultSensor()方法。

  獲得手機支持的所有傳感器

  Listsensors = sensorManager.getSensorList(Sensor.TYPE_ALL);1

  Android傳感器類型表

  加速度傳感器:TYPE_ACCELEROMETER

  以m/s2測量它設備所有三個物理軸線方向(x,y,和z)加速度。

  周圍溫度傳感器:TYPE_AMBIENT_TEMPERATURE

  檢測周圍空氣溫度。

  重力傳感器:TYPE_GRAVITY

  測量重力

  陀螺儀傳感器:TYPE_GYROSCOPE

  以rad/s測量設備三個物理軸線方向(x,y,和z)。旋轉速度。

  光照傳感器:TYPE_LIGHT

  以lx測量周圍的光線級別。

  線性加速度傳感器:TYPE_LINEAR_ACCELERATION

  檢測沿著一個軸向的加速度。

  磁力傳感器:TYPE_MAGNETIC_FIELD

  測量周圍的三個物理軸線方向的磁場。

  方向傳感器: TYPE_ORIENTATION

  測量設備所有三個物理軸線方向(x,y和x)的旋轉角度。

  壓力傳感器:TYPE_PRESSURE

  測量周圍空氣氣壓

  接近傳感器:TYPE_PROXIMITY

  檢測物體與手機的距離

  相對濕度傳感器:TYPE_RELATIVE_HUMIDITY

  檢測周圍空氣相對濕度

  旋轉矢量傳感器:TYPE_ROTATION_VECTOR

  用于檢測運動和檢測旋轉。

  溫度傳感器: TYPE_TEMPERATURE

  檢測設備的溫度

  傳感器使用實踐

  這里以方向傳感器為例

  方向傳感器的獲取方式

  Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);1

  上面這個,對,已經被google棄用了,了解就好。

  Android中的坐標系

  自己畫的有點丑,將就著看吧,Z軸默認垂直于地面,所謂獲取的三個Values數組即對應手機與Z,Y,X形成的夾角,后面會說明,

  前面說了,TYPE_ORIENTATION已被棄用,那么最新的方向傳感器是如何做的呢?

  事實上,Android 獲取手機旋轉的方向和角度是通過加速度傳感器和地磁傳感器共同計算得出的

  OK,我們這時候是需要同時使用兩個傳感器的,看代碼

  Sensor accelerometerSensor = sensorManager.getDefaultSensor(Sensor.

  TYPE_ACCELEROMETER);

  Sensor magneticSensor = sensorManager.getDefaultSensor(Sensor.

  TYPE_MAGNETIC_FIELD);

  sensorManager.registerListener(listener, accelerometerSensor,

  SensorManager.SENSOR_DELAY_GAME);

  sensorManager.registerListener(listener, magneticSensor,

  SensorManager.SENSOR_DELAY_GAME);12345678

  同時使用了加速度傳感器和地磁傳感器

  獲取旋轉矩陣數組R

  SensorManager.getRotationMatrix(R, null, accelerometerValues, magneticValues);1

  獲取手機旋轉數據

  SensorManager.getOrientation(R, values);1

  values 是一個長度為 3 的 float 數組,手機在各個方向上的旋轉數據都會被存放到這個數組當中。

  對應關系:

  values[0]-》Z軸、values[1]-》X軸、values[2]-》Y軸

  values[0]的取值范圍是-180到180 度,其中±180 度表示正南方向,0 度表示正北方向,-90 度表示正西方向,90 度表示正東方向,如圖

  所謂,實踐是檢驗真理的唯一標準,這是我檢測后自行畫的,大家看一下就明白該怎么根據獲取到的角度來做對應的處理了

  一個完整的方向傳感器封裝類

  public class DirectionSensorUtils implements SensorEventListener {

  private SensorManager sensorManager;

  float[] accelerometerValues = new float[3];

  float[] magneticValues = new float[3];

  float lastRotateDegree;

  private ImageView compassImg;//指南針背景圖

  public DirectionSensorUtils(Context context , ImageView compassImg) {

  sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);

  this.compassImg = compassImg;

  }

  //注冊傳感器

  public void registerSensor(){

  Sensor accelerometerSensor = sensorManager.getDefaultSensor(Sensor.

  TYPE_ACCELEROMETER);

  Sensor magneticSensor = sensorManager.getDefaultSensor(Sensor.

  TYPE_MAGNETIC_FIELD);

  sensorManager.registerListener(this, accelerometerSensor,

  SensorManager.SENSOR_DELAY_GAME);

  sensorManager.registerListener(this, magneticSensor,

  SensorManager.SENSOR_DELAY_GAME);

  }

  //解除傳感器注冊

  public void unregisterSensor(){

  if (sensorManager != null) {

  sensorManager.unregisterListener(this);

  }

  }

  @Override

  public void onSensorChanged(SensorEvent event) {

  // 判斷當前是加速度傳感器還是地磁傳感器

  if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {

  // 通過clone()獲取不同的values引用

  accelerometerValues = event.values.clone();

  } else if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {

  magneticValues = event.values.clone();

  }

  //獲取地磁與加速度傳感器組合的旋轉矩陣

  float[] R = new float[9];

  float[] values = new float[3];

  SensorManager.getRotationMatrix(R, null, accelerometerValues,

  magneticValues);

  SensorManager.getOrientation(R, values);

  //values[0]-》Z軸、values[1]-》X軸、values[2]-》Y軸

  //使用前請進行轉換,因為獲取到的值是弧度,示例如下

  // Math.toDegrees(values[0]);

  // Math.toDegrees(values[1]);

  // Math.toDegrees(values[2]);

  handleEvent(values);

  }

  public void handleEvent(float[] values){

  // 這里實現了一個指南針

  float rotateDegree = -(float) Math.toDegrees(values[0]);

  if (Math.abs(rotateDegree - lastRotateDegree) 》 1) {

  RotateAnimation animation = new RotateAnimation

  (lastRotateDegree, rotateDegree, Animation.RELATIVE_TO_SELF, 0.5f, Animation.

  RELATIVE_TO_SELF, 0.5f);

  animation.setFillAfter(true);

  compassImg.startAnimation(animation);

  lastRotateDegree = rotateDegree;

  }

  }

  @Override

  public void onAccuracyChanged(Sensor sensor, int accuracy) {

  }

  }


非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發表人:金巧 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 9999毛片免费看| 午夜伦y4480影院中文字幕| 人人射人人射| 欧美高清一级| 久久婷婷五综合一区二区| 黄色精品| 免费视频大全| 黄色在线视频网| 色视频免费版高清在线观看| 黄网在线观看免费| 国产精品秒播无毒不卡| 狼狼狼色精品视频在线播放| 日本欧美一区二区免费视| 伊人www| 天天摸天天做| 日本色免费| 国产真实偷乱视频在线观看| 7777色鬼xxxx欧美色夫| 日本伊人网| 国产真实乱xxxav| www.亚洲日本| 日本资源在线| 五月婷丁香| 欧美一区二区精品| 色视频一区| 看日本黄色大片| 一级大片免费看| 国产精品久久久久影视不卡| 乌克兰毛片| 天堂资源在线www中文| 看真人一级毛多毛片| 午夜在线影院| 天天摸天天舔天天操| www.夜夜操.com| 精品女同同性视频很黄很色| 四虎在线影院| 韩国视频在线播放| 天天操夜夜添| 在线观看免费av网站| 天堂日本| 国产成人a|