您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>傳感器>

學些傳感器必須掌握的一些知識

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

  傳感器類型

  動作傳感器

  這類傳感器在三個軸(X、Y、Z)上測量加速度和旋轉角度。包括如下幾個傳感器。

  加速(accelerometer)傳感器

  陀螺儀(gyroscope)傳感器

  重力(gravity)傳感器

  線性加速(linear acceleration)傳感器

  旋轉向量(rotational vector)傳感器

  環(huán)境傳感器

  這類傳感器可以測量不同環(huán)境的參數(shù),例如周圍環(huán)境的空氣溫度和壓強、光照強度和濕度。包括如下幾個傳感器。

  溫度(barometer)傳感器

  光線(photometer)傳感器

  溫度(thermometer)傳感器

  壓力(pressure)傳感器

  位置傳感器

  這類傳感器可以測量設備的物理位置。包括如下幾個傳感器。

  方向(orientation)傳感器(數(shù)據(jù)來自加速傳感器和磁場傳感器)

  磁場(magnetomenter)傳感器

  安卓傳感器類型

  TYPE_ACCELEROMETER //加速度傳感器(硬件

  TYPE_MAGNETIC_FIELD //磁場傳感器(硬件)

  TYPE_ORIENTATION //方向傳感器(軟件傳感器,數(shù)據(jù)來自重力和磁場傳感器)

  TYPE_GYROSCOPE //陀螺儀傳感器(硬件)

  TYPE_LIGHT //光線傳感器(硬件)

  TYPE_PRESSURE //壓力傳感器(硬件)

  TYPE_PROXIMITY //臨近傳感器(硬件)

  TYPE_GRAVITY //重場傳感器(硬件或軟件)

  TYPE_LINEAR_ACCELERATION //線性加速度傳感器(硬件或軟件)

  TYPE_ROTATION_VECTOR //旋轉矢量傳感器(硬件或軟件)

  TYPE_RELATIVE_HUMIDITY //濕度傳感器(硬件)

  TYPE_AMBIENT_TEMPERATURE //溫度傳感器(硬件)

  TYPE_TEMPERATURE //溫度傳感器(硬件),從Android4.0開始被TYPE_AMBIENT_TEMPERATURE取代

  安卓傳感器參數(shù)

  傳感器回調頻率

  參數(shù)延遲時間

  SensorManager.SENSOR_DELAY_FASTEST0ms

  SensorManager.SENSOR_DELAY_GAME20ms

  SensorManager.SENSOR_DELAY_UI60ms

  SensorManager.SENSOR_DELAY_NORMAL200ms

  傳感器返回值@link

  加速度感應檢測——Accelerometer

  Accelerometer Sensor測量的是所有施加在設備上的力所產生的加速度的負值(包括重力加速度)。加速度所使用的單位是m/sec^2,數(shù)值是加速度的負值。

  SensorEvent.values[0]:加速度在X軸的負值

  SensorEvent.values[1]:加速度在Y軸的負值

  SensorEvent.values[2]:加速度在Z軸的負值

  例如:

  當手機Z軸朝上平放在桌面上,并且從左到右推動手機,此時X軸上的加速度是正數(shù)。

  當手機Z軸朝上靜止放在桌面上,此時Z軸的加速度是+9.81m/sec^2。

  當手機從空中自由落體,此時加速度是0

  當手機向上以Am/sec^2的加速度向空中拋出,此時加速度是A+9.81m/sec^2

  重力加速度感應檢測——Gravity

  重力加速度,其單位是m/sec^2,其坐標系與Accelerometer使用的一致。當手機靜止時,gravity的值和Accelerometer的值是一致的。

  線性加速度感應檢測——Linear-Acceleration

  Accelerometer、Gravity和Linear-Acceleration三者的關系如下公式:

  accelerometer = gravity +linear-acceleration

  地磁場感應檢測——Magnetic-field

  地磁場的單位是micro-Tesla(uT),檢測的是X、Y、Z軸上的絕對地磁場。

  陀螺儀感應檢測——Gyroscope

  陀螺儀的單位是弧度/秒,測量的是物體分別圍繞X,Y,Z軸旋轉的角速度。它的坐標系與加速度傳感器的坐標系相同。逆時針方向旋轉的角度正的。也就是說,如果設備逆時針旋轉,觀察者向X,Y,Z軸的正方向看去,就報告設備是正轉的。請注意,這是標準的正旋轉的數(shù)學定義。

  光線感應檢測——Light

  values[0]:表示環(huán)境光照的水平,單位是SI lux。

  位置逼近感應檢測——Proximity

  values[0]:逼近的距離,單位是厘米(cm)。有一些傳感器只能支持近和遠兩種狀態(tài),這種情況下,傳感器必須報告它在遠狀態(tài)下的maximum_range值和在近狀態(tài)下的小值。

  旋轉矢量感應檢測——Rotation Vector

  旋轉向量是用來表示設備的方向,它是由角度和軸組成,就是設備圍繞x,y,z軸之一旋轉θ角度。旋轉向量的三個要素是,這樣旋轉向量的大小等于sin(θ/2),旋轉向量的方向等于旋轉軸的方向。

  values[0]: x*sin(θ/2)

  values[1]: y*sin(θ/2)

  values[2]: z*sin(θ/2)

  values[3]: cos(θ/2) (optional: only ifvalue.length = 4)

  方向感應檢測——Orientation

  其單位是角度

  values[0]: Azimuth(方位),地磁北方向與y軸的角度,圍繞z軸旋轉(0到359)。0=North,90=East, 180=South, 270=West

  values[1]: Pitch(俯仰),圍繞X軸旋轉(-180 to180), 當Z軸向Y軸運動時是正值

  values[2]: Roll(滾),圍繞Y軸旋轉(-90 to 90),當X軸向Z軸運動時是正值

  API:

  獲取系統(tǒng)支持傳感器類型 /** * 支持傳感器列表 * http://blog.csdn.net/redoq/article/details/52515123 * https://zhidao.baidu.com/question/2205380242168742428.html * http://www.jianshu.com/p/4c141d851346 */ private void testSupportSensorList(){ SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); String sensorStr = “”; List《Sensor》 list = sensorManager.getSensorList(Sensor.TYPE_ALL); for (Sensor sensor:list){ sensorStr += sensor.getName() + “\n”; } XLog.i(sensorStr); sensorStr = “”; for (Sensor sensor:list){ switch (sensor.getType()){ case Sensor.TYPE_ACCELEROMETER: sensorStr += “加速度傳感器” + “\n”; break; case Sensor.TYPE_MAGNETIC_FIELD: sensorStr += “磁場傳感器” + “\n”; break; case Sensor.TYPE_ORIENTATION: sensorStr += “方向傳感器” + “\n”; break; case Sensor.TYPE_GYROSCOPE: sensorStr += “陀螺儀傳感器” + “\n”; break; case Sensor.TYPE_LIGHT: sensorStr += “光線傳感器” + “\n”; break; case Sensor.TYPE_PRESSURE: sensorStr += “壓力傳感器” + “\n”; break; case Sensor.TYPE_PROXIMITY: sensorStr += “臨近傳感器” + “\n”; break; case Sensor.TYPE_GRAVITY: sensorStr += “重場傳感器” + “\n”; break; case Sensor.TYPE_LINEAR_ACCELERATION: sensorStr += “線性加速度傳感器” + “\n”; break; case Sensor.TYPE_ROTATION_VECTOR: sensorStr += “旋轉矢量傳感器” + “\n”; case Sensor.TYPE_RELATIVE_HUMIDITY: sensorStr += “濕度傳感器” + “\n”; break; case Sensor.TYPE_AMBIENT_TEMPERATURE: sensorStr += “溫度傳感器” + “\n”; break; case Sensor.TYPE_TEMPERATURE: sensorStr += “溫度傳感器” + “\n”; break; } } XLog.i(sensorStr);}傳感器使用步驟(通用)s1、使用傳感器之前首先獲取SensorManager通過系統(tǒng)服務獲?。篠ensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); s2、獲取我們需要的傳感器類型://單次有效計步Sensor mStepCount = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);//系統(tǒng)計步累加值Sensor mStepDetector = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR); s3、注冊監(jiān)聽者(監(jiān)聽傳感器事件)mSensorManager.registerListener(this, mStepDetector, SensorManager.SENSOR_DELAY_FASTEST);mSensorManager.registerListener(this, mStepCount, SensorManager.SENSOR_DELAY_FASTEST); PS:取消注冊:mSensorManager.unregisterListener(this, mStepDetector);mSensorManager.unregisterListener(this, mStepCount); s4、實現(xiàn)SensorEventListener接口,重寫方法并獲取數(shù)據(jù)@Overridepublic void onSensorChanged(SensorEvent event)


非常好我支持^.^

(1) 100%

不好我反對

(0) 0%

( 發(fā)表人:金巧 )

      發(fā)表評論

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

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?