实验五 加速度计与电子罗盘导航实验_第1页
实验五 加速度计与电子罗盘导航实验_第2页
实验五 加速度计与电子罗盘导航实验_第3页
实验五 加速度计与电子罗盘导航实验_第4页
实验五 加速度计与电子罗盘导航实验_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能机器人实验报告五)班级:01540802班姓名:南征学号:20080705信息与电子学院实验五加速度计与电子罗盘导航实验实验五加速度计与电子罗盘导航实验#实验五加速度计与电子罗盘导航实验08级通信工程专业01540802班南征(20080705)第11组一、实验目的掌握加速度测量的工作原理。掌握使用加速度传感器测量小车的旋转角度。掌握电子罗盘的使用方法。二、实验仪器设备PC机,串口通讯线‘BASICStamp®2模块‘BoardofEducation®承载板,导线,Parallax2X16SerialLCDMemsicMX2125Dual-Axis加速度计,HitachiHM55B罗盘模块。三、实验原理加速度计原理物体运动通常感受三个方向的加速度:前后,左右,上下。本实验所用的加速度传感器MX2125是二维传感器,只感应前后与左右的变化。加速度传感器MX2125内部充满气体,中央有加热元件,四周装有四个温度传感器。如果加速度计静止,它所感受的只有重力,由于热空气上升,冷空气下沉,所有的传感器将测量相同的温度。若将加速度倾斜,热空气会聚集在一个或两个温度传感器的周围,四个温度传感器将测到不同的温度。通过比较传感器的温度,静态加速度(如重力和倾斜)和动态加速度就可以被检测到。MX2125可将温度传感器测到的温度变化转化为电信号,这里与Stamp控制器测量和控制。通过利用PULSIN指令测量加速度及X轴与Y轴的脉冲长度可以获得小车的倾斜度。PULSIN的测量值的范围为1875到3125。当小车水平时,PULSIN指令的输出值应在2500左右。电子罗盘原理电子罗盘是利用地磁场来确定方向的传感器°HitachiHM55B罗盘模块是一个可侦测到在地磁场强度反映在x轴和y轴变化的多轴磁场传感器。能藉由把x轴测量值除以-y轴测量值来计算从北方算起的模块角度,并取arctangent作为结果。x值是表示地球磁场反应在传感器的xm轴上的值,如图4所示。y值是表示地球磁场的阴极反应在传感器的ym轴上的值。使用这些实际值及三角函数特性,可计算出0为arctangent-y/x。

四、实验内容1.加速度传感器实验加速度计传感器倾斜测试。将传感器在水平桌面上摆放好,打开电源开关。输入如下程序编译并运行。(打开LCD背后的SW2)xVARWordyVARWord'InitializeLCDPAUSE200SEROUT14,84,[22,12]PAUSE5DOPULSIN6,1,xPULSIN7,1,ySEROUT14,84,[128,DEC4?X,DEC4?Y]PAUSE100LOOP记录LCD上显示的数值大小。若显示数值不在2500附近,试调整传感器摆放的角度。改变传感器的倾斜角度。沿着y轴正方向将板子慢慢抬起。当倾斜的角度增加时,y值会逐渐增加。记录于下表。倾斜角度0306090输出y值2546285330703135放平板子,再次沿着y轴负方向将板子慢慢抬起。当倾斜的角度增加时,y值会逐渐减小。记录于下表。倾斜角度0306090输出y值2546224019961900放平板子,沿着x轴将板子向右手边抬起。当倾斜的角度增加时,x值会逐渐增大。记录于下表。倾斜角度0306090输出x值2535283530743156放平板子,沿着x轴将板子向左手边抬起。当倾斜的角度增加时,x值会逐渐减小。记录于下表。倾斜角度0306090输出x值2535221919981916任意旋转你的板子,感受x,y数值的变化。对加速度计进行旋转测试。首先介绍倾斜测量值的范围改变技巧。加速度计的测量值介于1875和3125之间。为便于下面的角度计算,我们须将其缩放至-127至127之间。指令语法为:value=(valueMIN1875MAX3125)-1875**13369-127在value变量减去1875之前,需要用到两个操作器,MIN1875和MAX3125来确认value变量在范围内。如果value变量在范围内,则MIN1875和MAX3125不会来干涉。但是要是value变量小于1875,则MIN1875会将值改为1875,同理,要是value变数大于3125,则MAX3125会将值改为3125。Arctangent函数可以用在以加速度计的x测量值和y测量值来定义加速度计的旋转角度。PBASIC里有个操作器称作ATN用于计算tan-1(y/x)。为了计算tan-1(y/x),我们将它移到名为angle的变量中,指令为angle=xATNy。将测得的角度以度数(°)来度量的话还需要用到一个转换语句:angle=angle*/361将传感器水平放置在桌面上。输入如下程序,编译并运行。angleVARWordxVARWordyVARWordDOPULSIN6,1,xPULSIN7,1,yx=(xMIN1875MAX3125)-1875**13369-127y=(yMIN1875MAX3125)-1875**13369-127angle=xATNyangle=angle*/361DEBUGHOME,CLREOL2,SDEC?x,CLREOL,SDEC?y,"angle=",CLREOL,DECangle,176‘ASCII176isdegreesymbolPAUSE100LOOP顺时针旋转传感器,观察在DEBUGTerminal上显示的角度值如何变化。并填入下表。实际旋转角度04590135180225270315输出角度245871321802222723202.电子罗盘实验测试罗盘模组。HM55B可以将Dout和Din脚位连接在一起所以它能从BASICStamp同一I/O脚位收发信号。另一个BASICStampI/O脚位连接到装置的CLK脚位。BASICStamp会送一个脉波到这个引脚,就像是它让芯片传送罗盘的状态或是计算或是回复命令。BASICStamp在交换任何数据前都会传送一个低电平到罗盘模块/Enable引脚,并初始化每个磁场计算。示例程序如下:'{$STAMPBS2}'{$PBASIC2.5}DEBUG"programrunning!"'[I/ODefinitions]DinDoutPIN2'P2transceivesto/fromDin/DoutClkPIN0'P0sendspulsestoHM55B'sClkEnPIN1'P2controlsHM55B's/EN(ABLE)'[Constants]ResetCON%0000'ResetcommandforHM55BMeasureCON%1000'StartmeasurementcommandReportCON%1100'Getstatus/axisvaluescommandReadyCON%1100'11->Done,00->noerrorsNegMaskCON%1111100000000000'For11-bitnegativeto16-bits'[Variables]xVARWord'x-axisdatayVARWord'y-axisdatastatusVARNib'StatusflagsangleVARWord'Storeanglemeasurement'[MainRoutine]DO'MainloopGOSUBCompass_Get_Axes'Getx,andyvaluesangle=xATN-y'Convertxandytobradsangle=angle*/361'ConvertbradstodegreesDEBUGHOME,"x-axisN(-S)=",SDECx,'DisplayaxesanddegreesCLREOL,CR,"y-axisW(-E)=",SDECy,CLREOL,CR,CR,"angle=",DECangle,"degrees",CLREOLPAUSE150'DebugdelayforslowerPCsLOOP'Repeatmainloop'[SubroutineCompass_Get_Axes]Compass_Get_Axes:HIGHEn:LOWEn'SendresetcommandtoHM55BSHIFTOUTDinDout,clk,MSBFIRST,[Reset\4]HIGHEn:LOWEn'HM55BstartmeasurementcommandSHIFTOUTDinDout,clk,MSBFIRST,[Measure\4]status=0'ClearpreviousstatusflagsDO'Statusflagcheckingloop10HIGHEn:LOWEn'MeasurementstatuscommandSHIFTOUTDinDout,clk,MSBFIRST,[Report\4]SHIFTINDinDout,clk,MSBPOST,[Status\4]'GetStatusLOOPUNTILstatus=Ready'ExitloopwhenstatusisreadySHIFTINDinDout,clk,MSBPOST,[x\11,y\11]'Getx&yaxisvaluesHIGHEn'DisablemoduleIF(y.BIT10=1)THENy=y|NegMask'Store11-bitsassignedwordIF(x.BIT10=1)THENx=x|NegMask'RepeatforotheraxisRETURN保持板子水平,使罗盘模块的X轴对准磁北极。当x轴与磁北极成为一直线时,DebugTerminal将会显示x的最大值,角度则应该显示是0度。保持罗盘模块对准北方,尝试上下倾斜。会发现在某一角度X有一个最大值,这是因为磁场从小车所在位置的地面中进入或射出的关系。记录能测量到的X轴最大值。实验中测得x轴的最大值为75。用LCD显示角度与磁场强度。切断板子电源,设定在X4及X5伺服之间的jumper为Vdd(+5V)如下图所示。RedRed使用跳线,连接LCD显示屏。切勿接错!示例程序如下:'{$STAMPBS2}'{$PBASIC2.5}'[I/ODefinitions]DinDoutPIN2'P2transceivesto/fromDin/DouClkPIN0'P0sendspulsestoHM55B'sClkEnPIN1'P2controlsHM55B's/EN(ABLE)'[Constants]ResetCON%0000'ResetcommandforHM55BMeasureCON%1000'StartmeasurementcommandReportCON%1100'Getstatus/axisvaluescommandReadyCON%1100'11->Done,00->noerrorsNegMaskCON%1111100000000000'For11-bitnegativeto16-bits'[Variables]xVARWord'x-axisdatayVARWord'y-axisdatastatusVARNib'StatusflagsangleVARWord'Storeanglemeasurement'[Initialization]'LCDInitializationPAUSE200'DebouncepowersupplySEROUT14,84,[22,12]'Turnon&clearLCDPAUSE5'5msdelayforclearcmdSEROUT14,84,[255,'DefineCustomCharacter7%01000,'*%10100,'**%01000,'*%00000,'%00000,'%00000,'%00000,'%00000]'SEROUT14,84,[129,"Heading...",'Staticcharacters149,"x=",158,"y="]'[MainRoutine]DO'MainloopGOSUBCompass_Get_Axes'Getx,andyvaluesangle=xATN-y'Convertxandytobradsangle=angle*/361'Convertbradstodegrees'LCDDisplayheadingindegreesontoplineandxandy'measurementsonthebottomline.SEROUT14,84,[139,"",139,DECangle,7,151,"",151,SDECX,160,"",160,SDECy]PAUSE150'DebugdelayforslowerPCsLOOP'Repeatmainloop'[SubroutineCompass_Get_Axes]Compass_Get_Axes:'CompassmodulesubroutineHIGHEn:LOWEn'SendresetcommandtoHM55BSHIFTOUTDinDout,clk,MSBFIRST,[Reset\4]HIGHEn:LOWEn'HM55BstartmeasurementcommandSHIFTOUTDinDout,clk,MSBFIRST,[Measure\4]status=0'ClearpreviousstatusflagsDO'StatusflagcheckingloopHIGHEn:LOWEn'MeasurementstatuscommandSHIFTOUTDinDout,clk,MSBFIRST,[Report\4]SHIFTINDinDout,clk,MSBPOST,[Status\4]'GetStatusLOOPUNTILstatus=Ready'ExitloopwhenstatusisreadySHIFTINDinDout,clk,MSBPOST,[x\11,y\11]'Getx&yax

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论