没有磁力传感器的手机距离传感器能用指南针吗

三星s4有没有磁力传感器(电子罗盘)?_百度知道
三星s4有没有磁力传感器(电子罗盘)?
提问者采纳
GPS导1、Proximity Sensor(近距离传器):通红外线识别手机前用户距离典型应用:体拨号;2、Gesture Sensor(手势传器):手势传器近距离传器同依靠红外线识别用户传器前手势作典型应用:手势操作;3、RGB Light Sensor(颜色/光敏传器):测量光源红、绿、蓝、白光强度典型应用:三星Adapt Display应用程序自适应屏幕;4、Hall Sensor(霍尔传器):自识别(适配)保护壳处于启或者关闭状态典型应用:三星S View Cover保护壳;5、Barometer(气压计):计算用户前所位置气压典型应用:三星S Health(健康伴侣);6、Temperaturel Humidity Sensor(温度/湿度传器):检测温度湿度典型应用:三星S Health(环境舒适程度检测);7、Geomagnetic Sensor(磁力计):基于三轴探测磁场强度典型应用:数字罗盘图;8、Accelerometer(加速计):基于三轴探测手机前运状态典型应用:三星S Health(运伴侣);9、Gyro Sensor(陀螺仪传器):基于三轴探测手机旋转状态典型应用:智能旋转屏幕另外三星Galaxy S4些比较趣功能比说颗特制Micro Controller Unit(MCU即微控制器)MCU自识别前系统负载旦需要马启三星Galaxy S4另外颗更强劲(四核)CPU外MCU能控制传器所三星面称尽管Galaxy S4传器高效智能省电系统让用户电池电量快捉襟见肘
提问者评价
其他类似问题
按默认排序
其他1条回答
您:S4支持应器:重力应器电罗盘光线应器距离应器陀螺仪气压欢迎访问三星服务预约:
电子罗盘的相关知识
您可能关注的推广回答者:回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁电磁辐射探测器_百度百科
关闭特色百科用户权威合作手机百科 收藏 查看&电磁辐射探测器本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!系&&&&统Android 1.6+类&&&&别生活实用
电磁辐射探测器V1.0.0[1]
下载114251次
语言中文电磁辐射探测器-电磁辐射的发现者电磁辐射探测器利用手机内置电磁传感器的功能对周边环境电磁辐射强度进行检测的软件内置精美指南针如果您的手机没有磁阻传感器请勿下载1.探测周边电磁辐射强度
2.记录并评估探测结果
手机具有磁阻传感器电子罗盘
新手上路我有疑问投诉建议参考资料 查看Android开发者指南-传感器-概述[原创译文]
Sensors Overview
英文原文:
版本:Android 4.0 r1
译者注:黄色底色为未决译文
学习Android支持的传感器及其传感器框架
学会获取传感器列表、识别传感器性能、监控传感器数据
学习访问和使用传感器的最佳实现方案
关键类和接口
大部分Android平台的设备都带有多个传感器,使你能监视其方位和运动状态的变化。
很多设备还有其它类型的传感器,让你能感知周围的环境条件,比如温度、压力、湿度和光线。
你可以利用Android的传感器框架访问这些传感器,并获取原始的传感器数据。
传感器框架提供了丰富的类和接口,能帮助你完成很多与传感器有关的工作。比如,你可以用传感器框架来进行:
确定设备上可用的传感器
确定某个传感器的性能,比如量程、制造商、能耗、分辨率等。
读取传感器的原始数据并指定最小读取频率
注册及注销监听传感器变化的传感器事件侦听器
本文概述了Android平台可用的传感器,并简要介绍了传感器框架。
Android传感器框架能让你访问很多类型的传感器。有些是基于硬件的,有些则是基于软件的。
基于硬件的传感器是内置于手持或桌面设备中的物理部件。它们直接测量环境参数并发送数据,比如加速度、地磁强度、角速度等。
基于软件的传感器则没有物理设备,虽然它们也是模仿硬件传感器。基于软件的传感器数据是来自一个或多个硬件传感器,有时也被称为虚拟传感器或合成传感器。
直线加速度传感器和重力传感器就是基于软件的传感器。表1中列出了Android平台支持的全部传感器。
能够拥有全部类型传感器的Android设备非常少见。比如,大部分手持设备和桌面设备都带有加速度和磁力传感器,但带气压计和温度计的设备就少得多了。
而且,在一台设备上某类传感器的数量也可以有多个。比如,一台设备可以带有两个重力传感器,每个传感器的量程各不相同。
表 1. Android框架支持的传感器类型
测量施于设备的物理三维方向上(x、y和z轴)的加速度,包括重力,单位为m/s2。
运动检测(晃动、倾斜等)
测量周围环境的温度,单位为摄氏度(°C)。参见下文。
软件或硬件
测量施于设备的物理三维方向上(x、y和z轴)的重力加速度,单位为m/s2 。
运动检测(晃动、倾斜等)
测量设备围绕每个物理三维方向(x、y和z轴)的转动角速度,单位为rad/s 。
转动检测(旋转、转动等)
测量周围环境的光照强度(照度),单位为lx。
控制屏幕亮度
软件或硬件
测量施于设备的物理三维方向上(x、y和z轴)的加速度,但不包括重力,单位为m/s2。
监测某一维轴线上的加速度
测量周围物理三维方向(x、y和z轴)的地球磁场,单位为μT。
创建指南针
测量围绕物理三维方向(x、y和z轴)的旋转角度。自API level 3开始,利用重力传感器和地磁传感器,你可以用
方法读取倾角矩阵和旋转矩阵。
检测设备的方位
测量周围大气压力,单位为hPa或mbar。
监测气压的变化
测量附近的物体与设备屏幕间的距离,单位为cm。此传感器的典型应用,是可以检测手持设备是否被人拿起来并靠近耳朵。
通话时确定电话的位置
测量周围环境的相对湿度,单位为百分比(%)。
监测结露点、绝对湿度和相对湿度。
软件或硬件
根据设备旋转向量的三个参数测量设备的方向。
运动检测和转动检测
测量设备的温度,单位是摄氏度(°C)。这个传感器的实现因设备的差异而各不相同,并自API Level 14开始由
传感器框架
通过使用Android传感器框架,你可以访问这些传感器并读取传感器的原始数据。Android传感器框架是
包的一部分,包含了以下类和接口:
你可以用这个类来创建传感器设备的一个实例。这个类提供了多个方法,用于访问及获取传感器列表、注册及注销传感器事件侦听器、读取方位信息等。
该类还提供了众多的传感器常量,用于报告传感器精度、设置数据采样率和校准传感器。
你可以用这个类来创建某个传感器的实例。该类提供了很多方法,使你能确定传感器的性能。
系统用该类来创建一个传感器事件对象,用于提供传感器事件的相关信息。这些信息包括:传感器原始数据、生成本事件的传感器类型、数据的精度、事件的时间戳。
你可以用该类来创建两个回调方法,用于传感器数值改变时或传感器精度变化时接收通知(传感器事件)。
在典型的应用中,你一般会用这些传感器API完成两个基本的任务:
识别传感器及其性能
如果你的应用有部分功能依赖于某些传感器,则在运行时识别传感器的类型和性能是非常有用的。
比如,你也许需要识别出当前设备上所有的传感器,并把那些所需传感器不可用的功能禁用掉。
同理,你可能还想识别出所有的某类型传感器,以便应用程序能够选用其中性能最佳的那个。
监听传感器事件
监听传感器事件是获取传感器原始数据的途径。每当传感器检测到其测量的参数发生变化时,传感器事件就会被触发。
传感器事件会向你提供四块信息:触发事件的传感器名称、事件的时间戳、事件的精度、触发事件的传感器原始数据。
传感器的可用性
传感器的可用性不仅会因设备不同而各不相同,也会因Android的版本而不一样。这是因为Android传感器的引入跨越了多个版本。
比如,很多传感器是自 Android 1.5 (API Level 3) 开始引入的,但其中有些并未实现而直至 Android 2.3
(API Level 9) 才可用。 同样,一部分传感器是自 Android 2.3 (API Level 9) 和 Android
4.0 (API Level 14) 才引入的。 有两个传感器已过时,被更新更好的传感器所替代。
表 2 汇总了每个版本可用的传感器。由于涉及传感器变动的版本只有四个,这里只列出了这四个版本。
标明过时的传感器在后续的版本中仍是可用的(当然设备要提供此传感器),这也符合Android向下兼容性原则。
表 2. 各版本可用的传感器
Android 4.0
(API Level 14)
Android 2.3
(API Level 9)
Android 2.2
(API Level 8)
Android 1.5
(API Level 3)
1 此传感器类型自 Android 1.5 (API Level 3)
起引入,但直至 Android 2.3 (API Level 9) 才可用。
2 此传感器可用,但已过时。
Android的传感器框架提供了众多的方法,使你很容易就能在运行时检测出当前设备可用的传感器。
API也提供了很多检测每个传感器性能的方法,比如量程、分辨率、能耗。
要识别设备上的传感器,你首先需要获取一个传感器设备的引用。你可以通过调用
参数,来创建一个
private SensorManager mSensorManager;...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
然后,你可以用
方法,以获取一个包含设备上所有传感器的列表。例如:
List&Sensor& deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
如果你需要列出某指定类型的所有传感器,你可以用其它常量来代替
你还可以用某类型常量作为参数的
来检测设备上是否存在该类型的传感器。如果设备上给定类型的传感器不止一个,则其中一个传感器必须指定为缺省传感器。
如果给定类型的缺省传感器不存在,则该方法返回null,表示设备没有该类型的传感器。例如,以下代码检查设备上是否存在磁力计:
private SensorManager mSensorManager;...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);if (mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null){
& // 成功!磁力计存在。
& // 失败|没有磁力计。
Android并未要求制造商在其Android平台的设备上安装任何类型的传感器,因此设备上可能会存在各种各样的传感器。
除了列出设备上的传感器清单外,你还可以用
类的公共方法来确定每个传感器的性能和参数。如果你的应用需要根据传感器及其性能的差异作出不同的表现,这就非常有用。 比如,你可以用
方法来获取传感器的分辨率及最大量程。你还可以用
方法来获取传感器的能耗。
如果你需要根据传感器的制造商或版本来对应用进行优化,有两个公共方法特别有用。
比如,如果你的应用需要监控倾斜或者晃动之类的用户手势,
则针对较新的带某厂商重力传感器的设备,你可以建立一套数据过滤规则和优化措施,而针对没有重力传感器只有加速度计的设备你可以建立另一套数据过滤器和优化措施。
以下例程展示了如何用
来完成这类工作的。在此例中,我们将先查找Google公司出品的版本为3的重力传感器。如果设备上不存在这类传感器,我们再尝试使用加速计。
private SensorManager mSensorManager;private Sensor mSensor;
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
if (mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY) != null){
& List&Sensor& gravSensors = mSensorManager.getSensorList(Sensor.TYPE_GRAVITY);
& for(int i=0; i&gravSensors.size(); i++) {
& & if ((gravSensors.get(i).getVendor().contains("Google Inc.")) &&
& & & &(gravSensors.get(i).getVersion() == 3)){
& & & // 使用版本3的重力传感器
& & & mSensor = gravSensors.get(i);
& // 使用加速计
& if (mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) != null){
& & mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
& & // 抱歉,设备上不存在加速计,你无法玩这个游戏。
其它较有用的是
方法,用于返回传感器采集数据的最小时间间隔(微秒)。任何
返回非零值的传感器都是流式传感器(streaming
sensor)。流式传感器以一定的时间间隔有规律地测量数据,自 Android 2.3 (API Level 9) 开始引入。
时返回零,这就表示该传感器不是流式传感器,只有所监测的参数发生变化时它才会报送数据。
方法能让你确定传感器的最大采样频率, 因此它是非常有用的。
如果你的应用中某项功能需要很高的数据采样率或者要用到流式传感器,你就可以用此方法先确认传感器是否符合要求,然后再据此来启用或禁用相关的功能。
警告: 传感器框架并不一定按照传感器的最大数据采样率来向你的应用发送数据。
传感器框架是通过传感器事件来报送数据的,而很多因素会影响到应用程序对传感器事件的接收频率。详情请参阅
要监控传感器的原始数据,你需要实现
回调方法。只要发生以下事件,Android系统就会调用这两个方法:
传感器精度发生变化
在这种情况下,系统会调用
方法,并传给你一个发生变化的
对象的引用和新的传感器精度值。精度用以下四种状态常量之一来表示: 、 、 、 和 。
传感器报送一个新数据
这种情况下,系统会调用
方法,并传给你一个
对象中包含了新数据的相关信息,包括:数据精度、生成数据的传感器、生成数据的时间戳、传感器采到的新数据。
以下代码展示了如何用
方法来监控光线传感器传回的数据,并把原始数据显示在一个由main.xml文件定义为sensor_data的
public class SensorActivity extends Activity implements SensorEventListener {
& private SensorManager mSensorManager;
& private Sensor mLight;
& @Override
& public final void onCreate(Bundle savedInstanceState) {
& & super.onCreate(savedInstanceState);
& & setContentView(R.layout.main);
& & mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
& & mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
& @Override
& public final void onAccuracyChanged(Sensor sensor, int accuracy) {
& & // 如果传感器精度发生变化,可以在这里完成些工作。
& @Override
& public final void onSensorChanged(SensorEvent event) {
& & // 光线传感器返回单个值。
& & // 很多传感器会返回3个值,代表每个坐标轴上的数值。
& & float lux = event.values[0];
& & // 利用此值完成一些工作
& @Override
& protected void onResume() {
& & super.onResume();
& & mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_NORMAL);
& @Override
& protected void onPause() {
& & super.onPause();
& & mSensorManager.unregisterListener(this);
在此例中,调用
时指定了缺省的数据延时 ()。
数据延时(或采样率)控制着由
发送给应用的传感器事件的触发间隔。缺省的数据延迟是200,000微秒,适于监测典型的屏幕方向变动。 你可以把数据延时指定为其它值,比如
(20,000微秒)、
(60,000微秒)或
(0微秒)。Android 3.0 (API Level 11)
开始,你还可以直接指定延时值(微秒数)。
你指定的延时只是一个建议值。Android系统和其它应用可以修改这个值。
最佳方案是,你应该指定你能承受的最大延时,因为系统一般会采用一个比设定稍小一点的值(也就是说,你应该选择应用所需的最慢采样率)。
采用更大的延时能够降低处理器的负载并减少耗电量。
传感器框架发送传感器事件的实际频率,是没有现成的公共方法来判断的,不过,你可以根据多个传感器事件的时间戳来计算出采样率。
一旦采样率(延时)设置完成,你就不应该改变它。如果由于某种原因需要修改延时,那你就必须注销并重新注册传感器侦听器。
还有一点非常重要,请注意上例中使用了
回调方法来注册和注销传感器事件侦听器。最佳方案就是,你应该保证在不用时及时关闭传感器,特别当你的activity被暂停时。
不然,因为某些传感器的能耗很大,会快速消耗电池电量,可能会在几个小时内将电池耗尽。当屏幕关闭时,系统会自动禁用所有传感器。
Android并没有设定标准的传感器配置,这意味着设备制造商可能会把所有要装入设备的传感器配置都放进Android平台的设备中。
这样,设备就可能包括了各种传感器的大量配置信息。比如,Motorola Xoom带有压力传感器,而Samsung Nexus
S就没有。 同理,Xoom 和 Nexus S 都带有陀螺仪,但是 HTC Nexus One 却没有。
如果你的应用依赖于特定类型的传感器,你不得不确认设备是否提供了该传感器,以保证你的应用能成功运行。
你有两种方式来确认传感器的存在:
在运行时检测传感器并酌情启用或禁用应用程序的相应功能
使用Android Market过滤器来限定目标设备必须带有特定传感器
这两种方式将在下节介绍。
在运行时检测传感器
如果你的应用程序用到了特定类型的传感器,不过并不是必须使用它,那么你可以在运行时利用传感器框架来检测它,并酌情启用或禁用相应功能。
比如,一个导航应用也许会用到温度、压力、GPS和地磁传感器来显示温度、气压、位置和南北方位。
如果设备不提供压力传感器,你可以在运行时用传感器框架来检测压力传感器是否存在,然后在应用界面上关闭气压的显示。
例如,以下就是检测设备是否提供压力传感器的代码:
& private SensorManager mSensorManager;
& mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
& if (mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) != null){
& // Success! There's a pressure sensor.
& // 失败!传感器不存在。
用 Android Market 过滤器来限定目标设备必须带有指定的传感器配置
如果你要在 Android Market 上发布应用,你可以用 manifest 文件中的
元素把不提供所需传感器的设备过滤掉。 manifest 文件中的&uses-feature&元素有很多硬件描述符,利用它们你
可以根据传感器存在与否来对应用进行过滤。 可列出的传感器包括:加速计、气压计、罗盘(地磁)、陀螺仪、光线和邻近距离。
以下是滤除无加速计的 manifest 样例:
&uses-feature android:name="android.hardware.sensor.accelerometer"
& & & & & & & android:required="true" /&
如果你把这个元素和描述符加入你的 manifest 中,则只有设备上带有加速计的用户才能在 Android Market
上看到你的应用。
仅当应用程序完全依赖于某指定传感器时,你才能把描述符设置 android:required="true"。
如果你的应用中只有某些功能用到了传感器,而没有传感器的话仍然能正常运行,那么你可以把传感器列在 &uses-feature&
中,但应设置 android:required="false"
。 这样可以确保没有此传感器的设备也能安装你的应用。 这也是项目管理实践中的最佳方案,有助于你时刻了解应用所需要的硬件特性。
请记住,如果你的应用用到了某个传感器,但没有此传感器也能运行,那你就必须在运行时检测传感器,并酌情禁用或启用相应功能。
通常,传感器框架使用标准的三维坐标系来表示数据。 对大多数传感器而言,该坐标系是以设备保持默认方向时的屏幕为参照物来定义的(参见图1)。
当设备保持默认方向时,X轴表示从左到右的水平方向,Y轴表示自下而上的垂直方向,Z轴表示相对屏幕表面由内而外的方向。
在这一坐标系中,屏幕背后的坐标用Z轴的负值表示。以下传感器会用到该坐标系:
图 1. 传感器API使用的坐标系(相对设备而言)
要理解这个坐标系,最重要的一点就是,屏幕方向变化时坐标轴并不移动——也就是说,设备移动时传感器的坐标系永不改变。 这与
OpenGL 坐标系类似。
理解坐标系的另一个要点,你的应用不得假定设备的初始(默认)方向是竖直的。很多桌面设备的初始方向是横向放置的。
传感器的坐标系总是以设备的初始方向为基准的。
最后,如果你的应用需要把传感器数据与屏幕显示关联,则你要用
方法来确定屏幕的转动方向,然后用
方法把传感器坐标映射为屏幕坐标。即使你的manifest文件已经指定为仅支持纵向显示,你仍需要这么做。
关于传感器坐标系的更多信息,包括如何处理屏幕旋转的相关信息,请参阅
注意: 某些传感器和方法的坐标系使用了地球参照系(而非设备参照系)。这些传感器和方法返回的数据表
示了相对大地坐标而言的设备运动和地理位置。详情请参阅
当你设计传感器相关的代码时,请确保遵守本节所列出的规范。这些规范作为最佳实现方案进行推荐,适用于需要使用传感器框架来访问传感器和读取传感器数据的任何人员。
注销传感器侦听器
当不再使用传感器或相关activity暂停时,确保及时注销传感器侦听器。
如果传感器侦听器已注册而相关activity被暂停,传感器仍会继续测量数据并消耗电池资源,除非你注销了传感器。 以下代码展示了如何利用
方法来注销侦听器:
private SensorManager mSensorManager;
& ...@Overrideprotected void onPause() {
& super.onPause();
& mSensorManager.unregisterListener(this);}
详情请参阅。
不要在模拟器上测试你的代码
目前无法在模拟器上测试传感器相关的代码,因为模拟器不能模拟传感器。你必须在物理设备上测试传感器相关代码。
不过,你可以利用传感器的模拟器来模拟传感器的输出。
不要阻塞 onSensorChanged() 方法
传感器数据以很高的频率在发生变化,这意味着系统可能会非常频繁地调用
方法。最佳实现方案是,在
方法中你应该尽可能少干些事情,以防止阻塞。如果你的应用需要对传感器数据进行过滤或剔除操作,则应该在
方法之外进行。
避免使用过时的方法或传感器类型
有几个方法和常量已经过时了。特别是
传感器类型已经过时。要获取方位数据,你应该换用
方法。同样,
传感器类型也已过时。在 Android 4.0 的设备上,你应该用
传感器类型来代替。
在使用前先验证传感器
在试图读取数据前,请确保先验证一下传感器是否存在。不要因为传感器很常用,就简单地假定它会存在。制造商并不需要在他们的设备上提供任何传感器。
谨慎选择传感器延时
方法注册传感器时,请确保为你的应用或使用场景选择了合适的发送频率。传感器能够以很高的频率发送数据。
请保证系统有能力发送其它数据,不要无谓浪费系统资源和消耗电池电量。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。已有天涯账号?
这里是所提的问题,您需要登录才能参与回答。
"天涯问答"是天涯社区旗下的问题分享平台。在这里您可以提问,回答感兴趣的问题,分享知识和经历,无论您在何时何地上线都可以访问,此平台完全免费,而且注册非常简单。
手机指南针的原理是什么?和磁极有关吗?
手机指南针的原理是什么?和磁极有关吗?
09-10-13 & 发布
指南针的发明是我国劳动人民,在长期的实践中对物体磁性认识的结果。由于生产劳动,人们接触了磁铁矿,开始了对磁性质的了解。人们首先发现了磁石引铁的性质。后来又发现了磁石的指向性。经过多方的实验和研究,终于发明了可以实用的指南针。磁现象的发现先秦时代我们的先人已经积累了许多这方面的认识,在探寻铁矿时常会遇到磁铁矿,即磁石(主要成分是四氧化三铁)。这些发现很早就被记载下来了。《管子》的数篇中最早记载了这些发现:“山上有磁石者,其下有金铜。”其他古籍如《山海经》中也有类似的记载。磁石的吸铁特性很早就被人发现,《吕氏春秋》九卷精通篇就有:“慈招铁,或引之也。”那时的人称“磁”为“慈”他们把磁石吸引铁看作慈母对子女的吸引。并认为:“石是铁的母亲,但石有慈和不慈两种,慈爱的石头能吸引他的子女,不慈的石头就不能吸引了。”汉以前人们把磁石写做“慈石”,是慈爱石头的意思。既然磁石能吸引铁,那么是否还可以吸引其他金属呢?我们的先民做了许多尝试,发现磁石不仅不能吸引金、银、铜等金属,也不能吸引砖瓦之类的物品。西汉的时候人们已经认识到磁石只能吸引铁,而不能吸引其他物品。当把两块磁铁放在一起相互靠近时,有时候互相吸引,有时候相互排斥。现在人们都知道磁体有两个极,一个称N极,一个称S极。同性极相互排斥,异性极相互吸引。那时的人们并不知道这个道理,但对这个现象还是能够察觉到的。到了西汉,有一个名叫栾大的方士,他利用磁石的这个性质做了两个棋子般的东西,通过调整两个棋子极性的相互位置,有时两个棋子相互吸引,有时相互排斥。栾大称其为“斗棋”。他把这个新奇的玩意献给汉武帝,并当场演示。汉武帝惊奇不已,龙心大悦,竟封栾大为“五利将军”。栾大利用磁石的性质,制作了新奇的玩意蒙骗了汉武帝。地球也是一个大磁体,它的两个极分别在接近地理南极和地理北极的地方。因此地球表面的磁体,可以自由转动时,就会因磁体同性相斥,异性相吸的性质指示南北。这个道理古人不够明白,但这类现象他们很清楚。指南针的始祖——司南指南针的始祖大约出现在战国时期。它是用天然磁石制成的。样子象一把汤勺,圆底,可以放在平滑的“地盘”上并保持平衡,且可以自由旋转。当它静止的时候,勺柄就会指向南方。古人称它为“司南”,当时的著作《韩非子》中就有:“先王立司南以端朝夕。”“端朝夕”就是正四方、定方位的意思。《鬼谷子》中记载了司南的应用,郑国人采玉时就带了司南以确保不迷失方向。春秋时代,人们已经能够将硬度5度至7度的软玉和硬玉琢磨成各种形状的器具,因此也能将硬度只有5.5度至6.5度的天然磁石制成司南。东汉时的王充在他的著作《论衡》中对司南的形状和用法做了明确的记录。司南是用整块天然磁石经过琢磨制成勺型,勺柄指南极,并使整个勺的重心恰好落到勺底的正中,勺置于光滑的地盘之中,地盘外方内圆,四周刻有干支四维,合成二十四向。这样的设计是古人认真观察了许多自然界有关磁的现象,积累了大量的知识和经验,经过长期的研究才完成的。司南的出现是人们对磁体指极性认识的实际应用。但司南也有许多缺陷,天然磁体不易找到,在加工时容易因打击、受热而失磁。所以司南的磁性比较弱,而且它与地盘接触处要非常光滑,否则会因转动摩擦阻力过大,而难于旋转,无法达到预期的指南效果。而且司南有一定的体积和重量,携带很不方便,这可能是司南长期未得到广泛应用的主要原因。司南由青铜盘和天然磁体制成的磁勺组成,青铜盘上刻有二十四向,置磁勺于盘中心圆面上,静止时,勺尾指向为南。指南针的发明古代民间常用薄铁叶剪裁成鱼形,鱼的腹部略下凹,像一只小船,磁化后浮在水面,就能指南北。当时以此做为一种游戏。东晋的崔豹在《古今注》中曾提到这种“指南鱼”。北宋时,曾公亮在《武经总要》载有制作和使用指南鱼的的方法:“用薄铁叶剪裁,长二寸,阔五分,首尾锐如鱼型,置炭火中烧之,侯通赤,以铁钤钤鱼首出火,以尾正对子位,蘸水盆中,没尾数分则止,以密器收之。用时,置水碗于无风处平放,鱼在水面,令浮,其首常向午也。”这是一种人工磁化的方法,它利用地球磁场使铁片磁化。即把烧红的铁片放置在子午线的方向上。烧红的铁片内部分子处于比较活动的状态,使铁分子顺着地球磁场方向排列,达到磁化的目的。蘸入水中,可把这种排列较快地固定下来,而鱼尾略向下倾斜可增大磁化程度。人工磁化方法的发明,对指南针的应用和发展起了巨大的作用。在磁学和地磁学的发展史上也是一件大事。北宋的沈括在《梦溪笔谈》中提到另一种人工磁化的方法:“方家以磁石摩针锋,则能指南。”按沈括的说法,当时的技术人员用磁石去摩擦缝衣针,就能使针带上磁性。从现在的观点来看,这是一种利用天然磁石的磁场作用,使钢针内部磁畴的排列趋于某一方向,从而使钢针显示出磁性的方法。这种方法比地磁法简单,而且磁化效果比地磁法好,摩擦法的发明不但世界最早,而且为有实用价值的磁指向器的出现,创造了条件。沈括还在《梦溪笔谈》的补笔谈中谈到了摩擦法磁化时产生的各种现象:“以磁石摩针锋,则锐处常指南,亦有指北者,恐石性亦不……,南北相反,理应有异,未深考耳。”这是说,用磁石去摩擦缝衣针后,针锋有时指南,也有时指北。从现在的观点来看,磁石都有N和S两个极,磁化时缝衣针针锋的方位不同,则磁化后的指向也就不同。但沈括并不知道这个道理,他真实的记录了这个现象并坦白承认自己没有做深入思考。以期望后人能进一步探讨。关于磁针的装置方法,沈括介绍了四种方法:1.水浮法——将磁针上穿几根灯心草浮在水面,就可以指示方向。2.碗唇旋定法——将磁针搁在碗口边缘,磁针可以旋转,指示方向。3.指甲旋定法——把磁针搁在手指甲上面由于指甲面光滑,磁针可以旋转自如,指示方向。4.缕悬法——在磁针中部涂一些蜡,粘一根蚕丝,挂在没有风的地方,就可以指示方向了。沈括还对四种方法做了比较,他指出,水浮法的最大缺点,水面容易晃动影响测量结果。碗唇旋定法和指甲旋定法,由于摩擦力小,转动很灵活,但容易掉落。沈括比较推重的是缕悬法,他认为这是比较理想而又切实可行的方法。事实上沈括指出的四种方法已经归纳了迄今为止指南针装置的两大体系——水针和旱针。梦溪笔谈》是沈括(年)所著的有关我国古代科学技术的著作,书中谈到磁学和指南针的一些问题。南宋陈元靓在《事林广记》中介绍了另一类指南鱼和指南龟的制作方法。这种指南鱼与《武经总要》一书记载的不一样,是用木头刻成鱼形,有手指那么大,木鱼腹中置入一块天然磁铁,磁铁的S极指向鱼头,用蜡封好后,从鱼口插入一根针,就成为指南鱼。将其浮于水面,鱼头指南,这也是水针的一类。指南龟是当时流行的一种新装置,将一块天然磁石放置在木刻龟的腹内,在木龟腹下方挖一光滑的小孔,对准并放置在直立于木板上的顶端尖滑的竹钉上,这样木龟就被放置在一个固定的、可以自由旋转的支点上了。由于支点处摩擦力很小,木龟可以自由转动指南。当时它并没有用于航海指向,而用于幻术。但是这就是后来出现的旱罗盘的先声。指南龟发明年代不晚于1325年。木块刻成龟型,龟腹部中心嵌以磁体,木龟安放在尖状立拄上,静止时首尾分指南北。罗盘定位要确定方向除了指南针之外,还需要有方位盘相配合。最初使用指南针时,可能没有固定的方位盘,随着测方位的需要,出现了磁针和方位盘一体的罗盘。罗盘有堪舆用的罗经盘和水罗盘、旱罗盘。方位盘仍是二十四向,但是盘式已经由方形演变成圆形。这样一来只要看一看磁针在方位盘上的位置,就能断定出方位来。南宋时,曾三异在《因话录》中记载了有关这方面的文献:“地螺或有子午正针,或用子午丙壬间缝针。”这是有关罗经盘最早的文献记载。文献中所说的“地螺”,就是地罗,也就是罗经盘。文献中已经把磁偏角的知识应用到罗盘上。这种罗盘不仅有子午针(确定地磁场南北极方向的磁针),还有子午丙壬间缝针(用日影确定的地理南北极方向)这两个方向之间的夹角,就是磁偏角。盘面周围刻二十四方位,内中盛水,磁针横穿灯草,浮于水面。现在人们已经知道,地球的两个磁极和地理的南北极只是接近,并不重合。磁针指向的是地球磁极而不是地理的南北极,这样磁针指的就不是正南、正北方向而略有偏差,这个角度就叫磁偏角。又因为地球近似球形,所以磁针指向磁极时必向下倾斜,和水平方向有一个夹角,这个夹角称为磁倾角。不同地点的磁偏角和磁倾角都不相同。成书于北宋的《武经总要》在谈到用地磁法制造指南针时,就注意利用了磁倾角。沈括在《梦溪笔谈》谈到指南针不全指南,常微偏东。指出了磁偏角的存在。磁偏角和磁倾角的发现使指南针的指向更加准确。磁性质的应用指南针一经发明很快就被应用到军事、生产、日常生活、地形测量等方面,特别是航海上。指南针在航海上的应用有一个逐渐发展过程。成书年代略晚于《梦溪笔谈》的《萍洲可谈》中记有:“舟师识地理,夜则观星,昼则观日,阴晦则观指南针。”这是世界航海史上最早使用指南针的记载。文中指出,当时只在日月星辰见不到的时候才使用指南针,可见指南针刚开始使用时,使用还不熟练。二十几年后,许兢的《宣和奉使高丽图经》也有类似的记载:“惟视星斗前迈,若晦冥则用指南浮针,以揆南北。”到了元代,指南针一跃而成海上指航的最重要的仪器了。不论昼夜晴阴都用指南针导航了。而且还编制出使用罗盘导航,在不同航行地点指南针针位的连线图,叫做“针路”。船行到某处,采用何针位方向,一路航线都一一标识明白,作为航行的依据。指南针的发明是古代先民对磁现象的观察和研究的结果。古代先民对磁现象的观察和研究的过程中,进一步了解了磁的性质,并试图更多地应用这些性质。传说秦始皇修建阿房宫时,有一宫门是用磁铁制造的。如果刺客带剑而过,立刻会被吸住,被卫兵当场捕获。这样的故事还很多,《晋书.马隆传》记载马隆率兵西进甘、陕一带,在敌人必经的狭窄道路两旁,堆放磁石。穿着铁甲的敌兵路过时,被牢牢吸住,不能动弹了。马隆的士兵穿犀甲,磁石对他们没有什么作用,可自由行动。敌人以为神兵,不战而退。东汉的《异物志》记载了在南海诸岛周围有一些暗礁浅滩含有磁石,磁石经常把“以铁叶锢之”的船吸住,使其难以脱身。魏晋南北朝时,我国先民对磁石的性质已有了很多认识。就连当时的诗人曹植在矫志诗中也用了“磁石引铁,于金不连。”的句子。可见他也了解磁石的性质。南北朝梁代的陶弘景在《名医别录》中提出了磁力测量的方法,他指出:优良磁石出产在南方,磁性很强,能吸引三、四根铁针,使几根针首尾相连挂在磁石上。磁性更强的磁石,能吸引十多根铁针,甚至能吸住一、二斤刀器。陶弘景不仅提出了磁性有强弱之分,而且指出了测量方法。这可能是世界上有关磁力测量的最早记载。我国先民对磁石的性质的研究和认识是指南针发明和发展的基础。
请登录后再发表评论!

我要回帖

更多关于 手机距离传感器 的文章

 

随机推荐