Android开发学习之路--磁传感器

出处: 学修网 发布于:2022-02-26 06:35:09浏览(7920)

  磁传感器
 
  磁传感器是把磁场、电流、应力应变、温度、光等外界因素引起敏感元件磁性能变化转换成电信号,以这种方式来检测相应物理量的器件。
 
  磁传感器广泛用于现代工业和电子产品中以感应磁场强度来测量电流、位置、方向等物理参数。在现有技术中,有许多不同类型的传感器用于测量磁场和其他参数。
 
  磁传感器是把磁场、电流、应力应变、温度、光等外界因素引起敏感元件磁性能变化转换成电信号,以这种方式来检测相应物理量的器件。磁传感器分为三类:指南针、磁场感应器、位置传感器。指南针:地球会产生磁场,如果你能测地球表面磁场就可以做指南针。电流传感器:电流传感器也是磁场传感器。电流传感器可以用在家用电器、智能电网、电动车、风力发电等等。位置传感器: 如果一个磁体和磁传感器相互之间有位置变化,这个位置变化是线性的就是线性传感器,如果转动的就是转动传感器。
 
  大生活中用到很多磁传感器,比如说指南针,电脑硬盘、家用电器等等。
 
  在传统产业改造中的应用及市场
 
  据报道,1995年仅工业过程控制传感器的全球市场已达到260亿美元;2001年计算机HDD用SV-GMR磁头的市场超过了4000亿日元(约合34亿美元)。若采用新型微型磁传感器,既使操作更简便,又提高了可靠性,增长了器件寿命,降低了成本。
 
  使用新型磁传感器可以显着提高测量和控制精度,如使用GMI(巨磁阻抗)磁场传感器,检测分辨率和常用磁通门磁强计一样,而响应速度却快了一倍,消耗功率仅为后者的1%;若用霍尔器件,其分辨率仅4A/m,而所需外场比前者高300余倍;在应力检测中,SI 传感器的灵敏度是常用电阻丝的2000倍高,是半导体应变规的20~40倍。工业机床的油压或气压汽缸活塞位置检测,广泛采用套在活塞杆上的永磁环和AMR元件组成的磁传感器,检测精度达0.1mm,检测速度可在0~500mm/s内以高低速度变换;改用GMI或SV-GMR传感器后,测量精度至少可以提高1个数量级。在机床数控化时代,数字磁尺帮助设计师们实现了闭环控制。使用绝对信号输出的磁尺,则不受噪声、电源电压波动等干扰,也不必原点复位。使用工作状态磁敏开关,还可以完成手动与数控之间的转换。
 
  旋转磁编码器在旋转量的检测控制中起关键作用,它在数控机床、机器人、工厂自动化设备的位置检测、传输速度控制,磁盘、打印机之类的自动化设备通讯设备的旋转量检测中都是不可缺少的重要部件。其检测对象是光磁图形,不受油雾粉尘的影响,因此比目前最先进的光编码器的可靠性高寿命长,尤其适合于自动焊接、油漆机器人和与钢铁有关的位置检测以及各种金属、木材、塑料等加工行业的应用。而仍大量使用光编码器,由于这种器件易受粉尘、油污和烟雾的影响,用在自动焊接、油漆机器人、纺织和钢铁、木料、塑料等的加工中,可靠性极差。应用AMR、GMR 、GMI敏感元件构成的旋转磁编码器,就不存在上述缺点,因此,它们的市场需求年增长率在30%以上。在家用电器和节能产品中也也有其广泛的应用潜力,在节能环保产品中也大有用武之地。若使用微型磁编码器和控制微机一体化,更有利于简化控制系统结构,减少元件数和占空体积,这在精密制造和加工业中意义十分重大。
 
  在环境监测中的应用
 
  环境保护的前提是对各个环境参数(温度、气压、大气成份、噪声。..。..。)的监测,这里需要使用多种大量的传感器。采用强磁致伸缩非晶磁弹微型磁传感器,可以同时测量真空或密闭空间的温度和气压,而且不用接插件,可以遥测和远距离访问。在食品包装、环境科学实验等方面,应用前景广阔。
 
  在交通管制中的应用
 
  交通事故和交通阻塞是城市中和城市间交通存在的一个大问题。国内外都在加强高速公路行车支持道路系统(AHS)、智能运输系统(ITS)和道路交通信息系统(VICS)等的开发与建设。在这些新系统中,高灵敏度、高速响应微型磁传感器大有用武之地。例如,用分辨率可达1nT的GMI和SI传感器,可构成ITS传感器(作高速路上的道路标志,测车轮角度,货车近接距离),汽车通过记录仪(测通行方向、速度、车身长度、车种识别),停车场成批车辆传感器,加速度传感器(测车辆通过时路桥的振动等)。
 
  磁传感器在电子罗盘中的应用
 
  几个世纪以来,人们在导航中一直使用磁罗盘。有资料显示早在二千多年前中国人就开始使用天然磁石-一种磁铁矿来指示水平方向。电子罗盘(数字罗盘,电子指南针,数字指南针)是测量方位角(航向角)比较经济的一种电子仪器。如今电子指南针广泛应用于汽车和手持电子罗盘,手表,手机,对讲机,雷达探测器,望远镜,探星仪,穆斯林麦加探测器(穆斯林钟),手持 GPS 系统,寻路器,武器/导弹导航( 航位推测 ),位置/方位系统,安全/定位设备,汽车、航海和航空的高性能导航设备,电子游戏机设备等需要方向或姿态显示的设备。
 
  地球本身是一个大磁铁,地球表面的磁场大约为0.5Oe,地磁场平行地球表面并始终指向北方。利用GMR薄膜可做成用来探测地磁场的传感器。图5显示这种传感器的具体工作原理。我们可以制出能够探测磁场X和Y方向分量的集成GMR传感器。此传感器可作为罗盘并应用在各种交通工具上作为导航装置。美国的NVE公司已经把GMR传感器用在车辆的交通控制系统上。例如,放置在高速公路边的GMR传感器可以计算和区别通过传感器的车辆。如果同时分开放置两个GMR传感器,还可以探测出通过车辆的速度和车辆的长度,当然GMR也可用在公路的收费亭,从而实现收费的自动控制。另外高灵敏度和低磁场的传感器可以用在航空、航天及卫星通信技术上。大家知道,在军事工业中随着吸波技术的发展,军事物件可以通过覆盖一层吸波材料而隐蔽,但是它们无论如何都会产生磁场,因此通过GMR磁场传感器可以把隐蔽的物体找出来。当然,GMR磁场传感器可以应用在卫星上,用来探测地球表面上的物体和底下的矿藏分布。
 
  门磁传感器在智能家居中的应用
 
  在智能家居门禁系统中门磁开关的作用是负责门磁通电否,通电带磁(闭门),断电消磁(开门),门磁安装于门与门套上,开关安装于屋内,配合自动闭门器使用,一般可承受150公斤的拉力。
 
  有线门磁为嵌入式安装更加隐蔽,感应门窗的开合,适用于木质或铝合金门窗发出有线常闭/常开开关信号。门磁是用来探测门、窗、抽屉等是否被非法打开或移动。它由无线发射器和磁块两部分组成。门磁系统其实和床磁等原理相同。

  说到传感器,还是有很多的,有加速度啊,光照啊,磁传感器等等。当然android手机之所以称为智能手机,少不了这几款传感器的功劳了。下面就学习下了,这里主要学习光照,加速度和磁。

  新建工程emSensorStudy,布局如下:

  《?xml version=“1.0” encoding=“utf-8”?》

  《LinearLayout

  xmlns:android=“http://schemas.android.com/apk/res/android”

  xmlns:tools=“http://schemas.android.com/tools”

  android:layout_width=“match_parent”

  android:layout_height=“match_parent”

  android:orientaTIon=“verTIcal”

  android:layout_margin=“5dp”

  tools:context=“com.jared.emsensorsstudy.MainAcTIvity”》

  《TextView

  android:text=“Hello Sensors”

  android:layout_gravity=“center”

  android:layout_width=“wrap_content”

  android:layout_height=“wrap_content”

  android:textSize=“22dp”/》

  《Button

  android:id=“@+id/startLightSensor”

  android:layout_width=“match_parent”

  android:layout_height=“wrap_content”

  android:text=“启动LightSensor”

  android:textAllCaps=“false”/》

  《Button

  android:id=“@+id/startAccelerSensor”

  android:layout_width=“match_parent”

  android:layout_height=“wrap_content”

  android:text=“启动AccelerSensor”

  android:textAllCaps=“false”/》

  《Button

  android:id=“@+id/startMagneTIcSensor”

  android:layout_width=“match_parent”

  android:layout_height=“wrap_content”

  android:text=“启动MagneticSensor”

  android:textAllCaps=“false”/》

  《/LinearLayout》

  添加LightSensor,AccelerSensor,MagnetiSensor的Activity,修改MainActivity代码如下:

  package com.jared.emsensorsstudy;

  import android.content.Intent;

  import android.os.Bundle;

  import android.support.v7.app.AppCompatActivity;

  import android.view.View;

  import android.widget.Button;

  public class MainActivity extends AppCompatActivity {

  private Button startLightSensorBtn;

  private Button startAccelerSensorBtn;

  private Button startMagneticSensorBtn;

  @Override

  protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  startLightSensorBtn = (Button)findViewById(R.id.startLightSensor);

  startAccelerSensorBtn = (Button)findViewById(R.id.startAccelerSensor);

  startMagneticSensorBtn = (Button)findViewById(R.id.startMagneticSensor);

  startLightSensorBtn.setOnClickListener(new myOnClickListener());

  startAccelerSensorBtn.setOnClickListener(new myOnClickListener());

  startMagneticSensorBtn.setOnClickListener(new myOnClickListener());

  }

  private class myOnClickListener implements View.OnClickListener {

  @Override

  public void onClick(View view) {

  switch (view.getId()) {

  case R.id.startAccelerSensor:

  Intent intent1 = new Intent(getApplicationContext(), AccelerSensor.class);

  startActivity(intent1);

  break;

  case R.id.startLightSensor:

  Intent intent2 = new Intent(getApplicationContext(), LightSensor.class);

  startActivity(intent2);

  break;

  case R.id.startMagneticSensor:

  Intent intent3 = new Intent(getApplicationContext(), MagneticSensor.class);

  startActivity(intent3);

  break;

  default:

  break;

  }

  }

  }

  }

  先要实现Light的功能,先修改布局如下:

  《?xml version=“1.0” encoding=“utf-8”?》

  《LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

  xmlns:tools=“http://schemas.android.com/tools”

  android:layout_width=“match_parent”

  android:layout_height=“match_parent”

  android:layout_margin=“10dp”

  tools:context=“com.jared.emsensorsstudy.LightSensor”》

  《TextView

  android:id=“@+id/light_level”

  android:layout_gravity=“center”

  android:layout_width=“wrap_content”

  android:layout_height=“wrap_content”

  android:textSize=“22dp”/》

  《/LinearLayout》

  简单地实现了一个textview用来显示光照强度。接着修改LightSensor代码如下:

  package com.jared.emsensorsstudy;

  import android.content.Context;

  import android.hardware.Sensor;

  import android.hardware.SensorEvent;

  import android.hardware.SensorEventListener;

  import android.hardware.SensorManager;

  import android.os.Bundle;

  import android.support.v7.app.AppCompatActivity;

  import android.widget.TextView;

  public class LightSensor extends AppCompatActivity {

  private SensorManager sensorManager;

  private TextView lightLevel;

  @Override

  protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_light_sensor);

  lightLevel = (TextView)findViewById(R.id.light_level);

  initWithLight();

  }

  @Override

  protected void onDestroy() {

  super.onDestroy();

  if(sensorManager != null) {

  sensorManager.unregisterListener(listener);

  }

  }

  public void initWithLight() {

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

  Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

  sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);

  }

  private SensorEventListener listener = new SensorEventListener() {

  @Override

  public void onSensorChanged(SensorEvent sensorEvent) {

  float value = sensorEvent.values[0];

  lightLevel.setText(“Currrent light level is ”+value+“lx”);

  }

  @Override

  public void onAccuracyChanged(Sensor sensor, int i) {

  }

  };

声明:本文为原创文章,如需转载,请注明来源学修网