用UGN3503霍尔器件制作的数字指南针_电路图
本文介绍了用两个UGN3503型霍尔器件设计制作的数字指南针的设计目的、系统结构和工作原理,以及各主要器件的使用方法。本系统包括UGN3503型霍尔器件、TLC0832 A/D转换器、单片机控制、液晶显示四部分,实现了对地磁信息的采集、放大,经过模数转换和单片机处理,最终显示出用文字表示的当前所处方位。
现在机器人的控制有了很大的发展,尤其遥控机器人,但是还不能象人有自己的探索。基本上是放上摄像头人工控制,所以很大程度上没有独立工作能力,离开人和GPS还是不能工作。我们开发本系统是为了在一个恶劣的环境下为一个数字化系统提供一个原始的参考数据,或充当机器人的一个廉价的测控工具。
本着这个目的,本系统主要功能有:
1、地磁放大功能:通过内置磁铁对地磁场的反应,实现对地磁信息的放大。
2、系统辅助定位功能:通过本设备提供的串行口,既可以嵌入系统,为系统的空间定位提供参考数据;又可以作为外设,提供临时性测算。
本系统的输出方式可以采用液晶显示和语音输出两种方式,语音输出可为盲人提供方便。
整个系统的方框图如上图所示。
我们将互相垂直的两个霍尔器件固定于框架底部(如下图所示),在两个小磁铁条的N极和S极之间夹一个中空的塑料圆筒使其刚好将两霍尔器件套入而没有接触。圆筒顶部封口,从其顶部圆心处引一根塑料轴,固定于框架底部,使圆筒可绕中心轴自由转动。
通过这种方法,小磁条便可在地球磁场的作用下指示方向,由于此两磁铁之间的磁场强度比地球磁场强很多,因此霍尔器件能够探测到其周围磁场的变化,从而实现了对地磁信号的放大。
如右图所示霍尔器件A探测x方向的磁场,B探测y方向的磁场。设某一时刻磁场方向如右图所示,A、B探测到的磁场分别为-a和b。则单片机通过处理此二数据便可得到方位角θ的值,从而判定当前方位。右图中虚线箭头所指方向为磁场方向,即地磁南极方向,×轴正方向即为观察者面对的方向。
目前市面上有多种霍尔器件,但大多数灵敏度较低,考虑到地磁的磁感应强度较为微弱,我们慎重选用了UGN3503型霍尔器件。此霍尔器件灵敏度较高,而且低噪输出。由于此器件采集到的信息是连续变化的模拟量,不能被单片机直接处理,必须把这些模拟量转换成数字量后才能够输入到单片机中进行处理,因此我们选用了A/D转换器TLC 0832。TLC0832是串行通讯的8脚2路A/D转换器件,在功能上和体积上都有优势。我们还可以把51改成2051进一步缩小体积。而且串行通讯可以把它跟3503做到一起,这样数据传输不受距离限制。此转换器与处理器接口兼容性较好,同时又可以单机操作。在5V电压供应下,可以输入0~5V范围内电压。TLC0831有单一输入频道;TLC0832已经具有多重输入频道。连续的输出被配置到接口标准变化寄存器或微处理器。LCD液晶显示采用LCD1602。此液晶显示模块为2行输出,每行16个字符。
整个系统电路图如上图所示。
考虑到在实际应用时,磁场可能会由于外界抖动而在某一时间或某一位置产生不稳定的状况,我们在数据处理时,采取了在若干个数据间段点中取其平缓过渡数据的设计方法。单片机最后通过跳线选择处理结果输出方式。系统程序流程图如下图所示。
目前,大多数设备还不具备简单的方向识别功能。对于较复杂、较高档的设备,其所用定位设备专用性较强,一般不易于其它设备兼容,且设计结构较为复杂,费用较高。我们设计的小型方向定位器,可以满足一些小型的,对方向精度要求不高的设备需要。由于该设备开发成本较低,因此把该仪器应用于一些简单设备中后,可以在较小提高成本的条件下,为设备增加一项较为显着的功能,提高其性价比。
(转)
用UGN3503霍尔器件制作的数字指南针_电路图的更多相关文章
- BZOJ_1833_[ZJOI2010]count 数字计数_数位DP
BZOJ_1833_[ZJOI2010]count 数字计数_数位DP 题意: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 分析: 数位DP f[i][ ...
- Vijos_1218_数字游戏_(划分型动态规划+环状动态规划)
描述 https://vijos.org/p/1218 给出n个数围成一个环,将其划分成k个部分,每个部分求和再对10取模,最后将每个部分的值相乘,求其最大值与最小值. 描述 丁丁最近沉迷于一个数字游 ...
- Day2_数字类型_字符串类型_列表类型_元组_字典_集合_字符编码_文件处理
数字类型: 作用:年纪,等级,薪资,身份证号等: 10进制转为2进制,利用bin来执行. 10进制转为8进制,利用oct来执行. 10进制转为16进制,利用hex来执行. #整型age=10 prin ...
- Day2_数字类型_字符串类型_列表类型
数字类型: 作用:年纪,等级,薪资,身份证号等: 10进制转为2进制,利用bin来执行. 10进制转为8进制,利用oct来执行. 10进制转为16进制,利用hex来执行. #整型age=10 prin ...
- C# 中的数字分隔符 _
编写 C# 代码时,我们时常会用到很大的数字,例如下面定义的变量: const long loops = 50000000000; 您能快速读出这是多少吗?是不是还是会有很多人把光标定位到最后一位,然 ...
- BZOJ_1833_[ZJOI2010]_数字计数_(数位dp)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1833 统计\(a~b\)中数字\(0,1,2,...,9\)分别出现了多少次. 分析 数位dp ...
- java实现登录的验证码和猜数字游戏_图形化界面
实验任务四 1,出现设计思想 (1)先定义文本框.密码框和验证码框的组件 (2)定义面板和按钮的个数 (3)定义公有的虚构方法,通过对象实例化来调用 (4)利用Random类来实现生成0-9的随机数 ...
- java实现多个数字求和_图形化界面
一,设计思想 1,通过简单的窗口实现多个数字的输入与输出. 2,可通过用户输入数字的数量来实现多个数字的求和. 3,定义整型数组变量number和字符串型数组变量integer,将输入的字符串变量赋给 ...
- 1.2python基础_数字类型_数字(Number)类型
一.整型(int型.整数) 整型 等价于C中的有符号长整型(long) 与系统的最大整型一致(如32位机器上的整型是32位,64位机器上的整型是64位), 可以表示的整数范围在[-sys.maxint ...
随机推荐
- jmeter 响应结果分析一
转自:http://www.cnblogs.com/Carrie_Liang/archive/2008/11/05/1327604.html Jmeter测试结果分析这一篇,我打算分成上下两部分.上篇 ...
- EASYUI Dialog的基本使用
1.基本使用 代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server&q ...
- Oracle程序包
程序包由两部分构成:规范(specification)和主体(body). 创建表 create table PEOPLE ( ID NUMBER primary key not null, NAME ...
- POJ1416——Shredding Company(DFS)
Shredding Company DescriptionYou have just been put in charge of developing a new shredder for the S ...
- C#如何使用和开发自定义配置节
在日常的程序设计中,如何灵活和巧妙地运用配置信息是一个成功的设计师的首要选择.这不仅是为了程序设计得更灵活性和可扩展性,也是为了让你的代码给人以清新的感觉.程序中的配置信息一般放在应用程序的app.c ...
- hdu4639Hehe
http://acm.hdu.edu.cn/showproblem.php?pid=4639 统计连续he的数量恰为斐波序列 不同块进行相乘 #include <iostream> #i ...
- 设计模式 - observer
简单来讲,就是observer依赖于subject,当subject发生变化时,observer得到通知,并将状态与subject同步,常来用于维护对象间状态的一致性. observer的工作过程大体 ...
- webstorm使用教程之 使用github
详细说下webstorm下设置,首先确认webstorm是否为最新版,然后点击(file->setting->github) 填完后点击test,确保畅通... 点击以后会出现弹出框,会让 ...
- Xcode7下载地址
XCode 7 7.3.1:https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.3. ...
- 【转】FragmentTest学习笔记1
原文网址:http://blog.csdn.net/hishentan/article/details/20734489 源码部分: BookContent.java package com.exam ...