版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
III基于高德地图的智能避障小车硬件和软件系统设计案例目录TOC\o"1-3"\h\u23134基于高德地图的智能避障小车硬件和软件系统你设计案例 150271课题来源 1168282硬件设计设计 1155292.1智能小车的避障模块选型 1172572.2电机驱动模块 4294402.3电源 5228812.4GPS模块 5175942.5蓝牙模块 6280122.6电子罗盘模块GY-273 683372.7MCU微控制器模块 8305003MCU端软件设计 9318303.1避障程序设计 918383.2AndroidAPP蓝牙控制程序设计 11142853.3高德地图导航模式 1443933.3.1GPS模块数据解析 14264593.3.2磁力计校准算法——简易椭圆拟合算法 1546403.3.3导航设计思路 15197654Android应用设计 16244484.1Androidstudio工程创建及文件介绍 16155964.2Android应用界面设计 1927964.3Android基本控件和蓝牙通信网络 19175554.4高德地图移植 20269674.5Android应用导航功能设计思路 2340465系统测试与误差分析 24805.1智能小车的硬件调试 25236845.2智能小车的MCU软件测试 25292945.3Android应用调试 26220345.4智能小车避障测试与误差分析 2631175.5蓝牙控制测试与分析 2649165.6导航测试与误差分析 261课题来源任务书2硬件设计设计2.1智能小车的避障模块选型避障模块就是小车的眼睛,只有这样小车才能采集前方的数据进行分析。查阅众多的资料,目前的避障主要是以测距模块和摄像头采集数据进行图像识别这两种方式实现。本次选择使用测距模块来实现避障功能。测距模块的主要功能是测量模块位置距离障碍物的距离,再根据距离大小来躲避前方的障碍物。根据所查阅的信息,方案有以下三种:方案一、红外传感测距模块由原理图2-1可知,该模块主要由LM393比较器和一个红外对管组成。其工作原理:红外对管的发射管发射出红外线,若前方存在物体,物体会把红外线反射回去,红外对管的接收管接收到红外线时,红外对管导通,比较器LM393直接与GND相连,此时D0输出低电平;若红外对管前方不存在物体,红外线就不会被物体反射,红外线对管中的接收管将不会收到发射出去的红外线,使得接收管不导通,导致LM393比较器的正极端口的电压要大于负极端口的电压,D0引脚输出为1。使用时,只需读取D0引脚输出的电平,来判断前方是否存在物体,阻碍智能小车前行。图2-1红外避障模块原理图介绍完原理,接下来说明一下模块的电气参数:VCC可接3.3V或者5V的电源;GND接电源的接地端口;D0端口为数字量输出;检测范围为2-30cm,可调节电位器从而改变检测范围;检测角度约为35度。优点:使用方便,占用的IO少。缺点:调整检测距离需要调节滑动变阻器;易受管线影响;并且阻挡物体不能为黑色,否则红外线会被吸收,导致模块误判为前方无物体。实物如下图2-2:图2-2红外避障模块实物图介绍完芯片及原理后,再讲解一下模块的一些参数:VCC可接3.3V/5V的电源正极;GND接电源的接地端口;SCL可接主控芯片的I2C通信的时钟线;SDA可接主控芯片的I2C通信的数据线;INT为中断输出引脚;XSH为片选使能引脚。优点:面积小、测量的精度为正负3%、多种测量模式以及可设置IIC从机的通信地址设置和中断输出。缺点:性价比低、最远距离2M、强光环境下最远距离会缩短。实物图,如下图2-4。方案二、超声波测距模块由图超声波模块原理图图2-3可知,该模块由8位单片机STC11、运算放大器TL074、电平转化芯片MAX232等组成。图2-3超声波模块原理图由于该模块涉及到STC11的内部程序,在此就不说具体原理及实现。接下来说一下引脚功能,实物图如下图2-4,模块VCC引脚可接5V或者3.3V(电源电压不同,测量的距离也不同);Trig引脚为触发控制信号的输入;Echo引脚为回响信号的输出。优点:可控性强、性价比高、测距精度可达3mm、可测范围广(2cm-450cm);缺点:感应角不大于15度、检测面积大于0.5平方米。图2-4超声波模块实物图经过仔细的思索和对比,最后决定使用HC-SR04+作为智能小车的“眼睛”。2.2电机驱动模块本系统选择使用电机驱动模块—L298N,模块采用ST公司研发的电机驱动芯片L298N,该芯片可同时驱动两路3伏至30伏的直流电机,并且芯片内部蕴含降压,可直接为MCU提供5V的电源,并且3.3VMCU的控制,可以方便的控制直流电机的速度与方向,也可以控制两相的步进电机,驱动的电流高达2A,是智能小车电机驱动的首选。实物图如下图2-5:图2-5模块实物图L298N引脚说明图如下图2-6,输出A和输出B接电机的正负两极。通道使能A引脚和通道使能B引脚接高电平有效,可接PWM进行对电机调速。5V供电降低VCC电压输出5V,可为MCU供电。逻辑输入负责根据MCU的IO输出,控制电机正转、反转、停止。12V供电为电源VCC引脚,输入电压为7V至35V。图2-6L298N电机驱动模块引脚说明2.3电源电源采用3节18650锂电池,本该选择一个电源模块去降压,为MCU供电,但因为L298N电机驱动模块自带5V降压,因而直接采用3节18650锂电池。电源满电使用万用表测量为为10.8V,满足L298的电源输入。2.4GPS模块GPS模块采用具有强大性能、体积小的NEO-7N模组,模块集成了放大电路,提升了无源陶瓷天线搜索卫星的速度。同时自带EEPROM,可以通过模块的USB接口进行设置GPS模块的各种参数,并保存与EEPROM,掉电不会消失。使用时需注意,信号灯常亮,表示还未实现定位;信号灯闪烁,表示已经定位成功模块。说明图,如下图2-7。图2-7GPS模块说明图GPS模块接线说明,如表2-1。简单介绍GPS的一些主要参数:GPS模块的串口通信波特率默认为9600。引脚VCC、GND、TXD、RXD必须接,PPS可以选择不接。定位所需时间由短到长:3m的SMA有源天线、有源的陶瓷天线、无源的天线。并且GPS定位时,需在室外空旷之地。本系统采用最快的SMA有源天线。表2-1GPS引脚说明表2.5蓝牙模块万物互联思想的提出,智能家居开始兴起。目前蓝牙主要分为两种,其中一种是经典蓝牙,另外一种就是为了智能家居研发的低功耗蓝牙BLE。经典蓝牙模块(BT)通常是指使用的蓝牙协议低于4.0的蓝牙模块,其优点是传输数据量大,相应的这就会出现功耗大的缺点,还有一缺点是通信距离短,一般为10M左右。低功耗蓝牙BLE则是指所使用的蓝牙协议高于4.0的蓝牙模块,其特点是低功耗,同样的为了控制功耗,传输数据量就比较小,但其传输距离大于经典蓝牙,大约为50米左右。本系统采用经典的蓝牙串口模HC-05,HC-05具有两种工作模式,其一是命令响应工作模式,该模式下可是使用AT指令对模块进行操作和配置。因该模式下使用的AT指令,又称AT模式。另一种模式为自动连接模式,当模块处于该模式下,将会依据实现的配置,进行数据的传输。HC-05实物图如下图2-8:图2-8HC-05蓝牙模块2.6电子罗盘模块GY-273本次系统中所使用的电子罗盘模块的核心是霍尼韦尔公司的HMC5883L芯片,HMC5883L是一种高度集成化,且具有多种数字接口的弱磁传感器类型的芯片。HMC5883L采用了美国霍尔尼尔公司的各向异性磁阻(AMR)技术,此项技术提高了HMC5883L的轴向的灵敏度和线性精度。其通常被应用于智能手表、手机、汽车的导航系统等。模块实物图,如图2-9。图2-9磁力计模块HMC5883HMC5883L是通过采集周围的磁场矢量,通过算法计算出与磁北的角度,而磁北极与真正的北极只相差11度左右。磁北与真北的区别,如图2-10。图2-10磁北与真北的区别图2.7MCU微控制器模块根据以上模块的选择,蓝牙模块和GPS个需要一个USART,L298N需要至少8个GPIO脚,超声波模块需要2个GPIO,SG90舵机需要一个PWM,再根据最小系统价格,本系统选择MCU的型号为STM32F103C8T6。STM芯片选型手册如下图2-11。图2-11STM32F1系芯片选型图STM32F103C8T6最小系统板原理图如下图2-12,简单介绍一下途中电路图,电源模块部分:负责将5V电源降压为3.3V给芯片供电;复位电路部分:采用按键,按下时,RESET接地,MCU复位,内置程序重新运行;晶振部分:负责为MCU提供工作时钟;ST-Link下载电路:负责通过ST-Link对MCU的程序仿真和下载;使能电路:该电路使用来调整下载方式的,根据BOOT0和BOOT1组合共有三种模式,具体请看图2-13。图2-12STM32F103C8T6最小系统板原理图图2-13BOOT三种模式3MCU端软件设计MCU软件部分开发平台采用MDK,并且以C语言为主要编写语言。3.1避障程序设计对于模块编程,不可避免的就是去看使用手册和通信时序图。HC-SR04+的时序图如下图3-1。由时序图可知,第一步:需要MCU将触发信号引脚Trig拉高至少10us,再拉低。然后模块内部会自动发出8个40KHz的脉冲。第二步:捕捉输出回响信号引脚ECHO的高电平时间。第三步:根据捕捉高电平的时间,计算出距离,计算公式:距离=ECHO高电平时间*音速(340m/s)/2。图3-1超声波模块通信通信时序图分析完了模块的使用,接下来简单讲一下程序设计思路,首先,拉高Trig脚电平,20us后在拉低。其次,打开与ECHO连接的MCU引脚的外部中断,发生电平变化时,第一次触发中断时,ECHO为高电平,打开定时器;第二次触发中断时,ECHO为低电平,关闭定时器。最后,在读取定时器的值,就可以得到ECHO输出高电平的时间,再根据时间计算距离即可。接线说明:Trig连接MCU的PA0,Echo连接MCU的PA1。基本配置步骤:步骤一,打开挂载在APB2总线上的GPIOA和AFIO时钟,并将配置PA0为推挽输出和PA1为上拉输入。步骤二,配置PA1的外部中断,将其设置为电平跳变触发。步骤三,开启APB2总线上的定时器TIM4的时钟,配置定时时间为1ms,打开定时器更新中断。步骤四,在定时器中断函数中,计时变量加1。步骤五,在外部中断一对应的函数中,根据ECHO的电平,打开或关闭定时器。步骤六,编写单次启动超声波模块的函数,函数流程图如图3-2。图3-2超声波单次启动流程图超声波模块基本解决,接下来就是超声波模块的底座SG90舵机云台。SG90是一个模拟舵机,需要一直输入一个PWM波,维持舵机的旋转角度。STM32自带PWM输出,仅只需对其进行配置。舵机原理:舵机中存一个在基准电压,当PWM信号被输入时,会产生一个直流偏置电压,舵机就会把这个基准电压与相对应的直流偏置电压比较,获取相应的电压差。再通过将电压差输入到内部的电机驱动芯片上,从而去旋转舵机,当电压差为0时,就停止旋转,达到相应的角度。SG90舵机常用旋转角度与占空比关系,如图3-3。图3-3SG90常用旋转角度与占空比关系图有了SG90和超声波的控制程序,接下来就可以写完整的避障程序了。简易思路:使用超声波模块采集小车正前方和左右两侧与障碍物的距离。分析三个方向的距离,控制小车绕开障碍物。根据程序框图如图3-4,具体叙述一下整个流程:首先利用超声波和舵机去获取90度、135度以及45度的与障碍物的距离。然后根据采集到的前方距离,若大于30cm,进而去判断左距离和右距离是否都大于9cm(判断车身是否能通过),若左距离和右距离都大于9cm,小车就前行;若都小于9cm,小车左转90度;其中之一小于9cm,小车旋转方向与小于9cm方向相反。若正前方距离小于30cm,接检测左右方向距离大于30cm,若都小于,小车旋转90度;否则,旋转方向与小于的方向相反。图3-4避障流程图3.2AndroidAPP蓝牙控制程序设计关于AndroidAPP的编写放在第五章节,这里只介绍MCU端的程序设计。蓝牙模块HC05设置方法共有两种:第一种是MCU内部编程使用AT指令控制。第二种将蓝牙模块和TLL串口模块与电脑连接,利用串口助手发送AT指令。这里采用第二种方法,去设置蓝牙模块的串口通信波特率、蓝牙模块的设备名称,其余采用默认的。主要使用了两条指令,一条是AT+UARH,关于该指令详细说明,请看图3-5。另一条是AT+NAME,详细介绍和例子,请看图3-6。图3-5AT+UARH指令说明图图3-6AT+NAME指令说明图HC-05蓝牙模块是一个透传模块,这就意味着MCU通过串口发送的数据,HC-05不会对其进行数据帧的封装,不会像云平台一般按照一个通信协议去封装数据。其实说白了,就是蓝牙透传模块只是一个接收和转发。这就意味,我们只需写一些特定的字符串作为小车的指令即可。这个本系统不管是Android端还是MCU端,通信结束都是以字符“A”为结尾。自定义的通信指令集表如表3-1:表3-1自定义通信指令集指令作用STOPA停止UPA前进DOWNA后退LEFTA左转RIGHTA右转MODE1A模式一:避障模式MODE2A模式二:AndroidAPP控制MODE3A模式三:导航模式蓝牙程程序思路介绍:首先,蓝牙模块与MCU的USART1连接,所以基本的GPIO配置是不可避免的,这就不说了。接下来说一下,串口配置需要注意的地方,串口的波特率、停止位、校验位的设置需要跟蓝牙模块的设置的相同,不然会出现数据丢失以及乱码的情况。因为蓝牙模块是作为MCU和Android通信的中转站,所以为了方便数据的输出,在代码中重新定义了fputc函数,并且在MDK平台中勾选USEMicroLib,这样就能通过printf函数从USART1直接打印或传输数据。MDK平台使用MicroLib库操作如图3-7。图3-7MDK使用MicroLib库操作图为了能够实时的相响AndroidAPP发送的指令,打开MCU的串口接收中断,并将中断的抢占优先级设置为1,响应优先级设置为3。至于抢占优先级和响应优先级的概念,这里就不诉说了,感兴趣的可以去看蒙博宇的《STM32自学笔记》。USART1的基本设置就完成了,接下来介绍USART1_IRQHandler内部编写。首先,在其内部顶一个接收状态变量state以及接收缓存数组res[64](char)。利用USART_ReceiveData将接收到的数据存入res,当检测到字符“A”时,将state置为1,表示已经接收到了一条完整的指令。接下来只需将接收的数据使用strcmp函数去和之前的指令级进行对比,去设置电机驱动模块的控制逻辑,进而控制小车行驶。蓝牙控制MCU端程序流程图,如图3-8。图3-8蓝牙通信流程图3.3高德地图导航模式3.3.1GPS模块数据解析该功能主要是使用GPS模块,获取到经度和纬度,再将其通过蓝牙发送给手机,手机APP在调用高德地图的API,去定位显示小车的位置。想要通过GPS模块获取经纬度,就需要去了解GPS的指令,指令详细介绍图如图3-9。图3-9GPS指令讲解图由上图可知,GPS定位信息的基本格式,以$GPRMC开头,数据与数据之间以逗号相隔。因此,在解读GPS模块发送的信息时,第一件事就是判断是否接收的数据是否以$GPRMC开头。若以$GPRMC开头,就将接收的数据保存下来,并将获取GPS数据状态变量置1。接收完数据之后,就是对数据进行解析。因为数据之间以逗号隔开,我们只需循环使用6次strstr()函数去查找到逗号,即可获取到需要的经度和纬度信息。解析完数据后,需将解析状态变量置为1,方便能正确的发送经度和纬度给Android端。3.3.2磁力计校准算法——简易椭圆拟合算法磁力计没有外界干扰时,磁力计的输出应该为圆形,如图3-10(a);当外界存在磁场干扰时,磁力计输出为一椭圆,如图3-10(b)。为了抵消外界磁场干扰,是磁偏角更为准确,将椭圆校正为圆形,采用椭圆拟合算法。图3-10磁力计输出图简易椭圆拟合算法实现:第一步,在本地磁场的干扰下,
收集小车旋转360度的数据,记录下X轴与Y轴的最大值和最小值。第二步,计算出偏差的偏移和灵敏度的比例因子,用来补偿本地磁场的干扰。假设X轴增益为1,椭圆拟合算法的数学表达式,如下:X轴的偏移量计算公式:X轴的偏移量计算公式:Y轴增益计算公式:磁偏角计算公式:x为磁力计X轴的输出,y为磁力计Y轴的输出。切记,不要将磁力计放在磁性物体附近,否则误差非常大。3.3.3导航设计思路智能小车仅在有GPS信号时,才会进行小车的行驶方向校准。第一步,接收到上位机发送的航向角,读取车头朝向的磁偏角,若两者的差值小于10度,则启动避障程序;若大于10度,则不断去校准航向。高德地图导航流程图,如图3-11。图3-11高德地图导航流程图4Android应用设计4.1Androidstudio工程创建及文件介绍创建工程:单击NEW,选择NEWProject,如图4-1操作。接着就会跳出图4-2,选择一个Activity,然后单击NEXT。接下来就是给工程命名,如图4-3,最后单击Finish,一个新工程就建好了。图4-1创建工程图图4-2Activity选择图图4-3工程命名AndroidApp文件目录如图4-4,AndroidManifest.xml文件内部写有Android的相关权限等。Java文件夹底下的是应用的源代码,其下的activity文件夹底下的是高德地图的相关源代码,bluetooth文件夹下的是蓝牙的通信源码和蓝牙设备好获取的源码,Data是全局变量文件,MainActivity为主界面的源码。在往后就是看res文件夹下的文件,layout文件夹下的是UI界面文件,drawable内包含各种图片文件,value则是包含字符串替代文件、颜色配置文件、以及APP的主题文件。图4-4Android应用文件目录图4.2Android应用界面设计AndroidAPP界面如图4-5,从图可知,需要从左palette栏脱出8个Button,有箭头的四个按键用于控制小车的前进、小车的后退、小车的左转、小车的右转。最底部的从左到右,分别用于设置小车为模式一、模式二、模式三。右上方的蓝牙按键跳出AlertDialo对话框,对话框内为一个列表,分别为打开蓝牙、蓝牙的连接、断开蓝牙。图4-5AndroidAPP界面图按键属性改动:从palette其默认样式为灰色,如图4-6(b)。本APP界面的是加上了背景图片,如图4-6(a)。接下来说一下按键属性,首先是Android:id是每个控件都有的,这是控件的id,用于Java文件中findViewById函数对控件的绑定,以作区分。Android:text是控件表面的文本信息,本App右上方的显示的蓝牙设置,就是通过以此来实现的。Android:background为控件的背景,想要作为其背景,需要将PNG格式文件放入drawable文件夹内。讲一下如何将jpg格式转化为PNG格式,可以使用windows自带的画图工具,将其粘贴进画板,然后保存时,选择PNG格式。图4-6按键对比图4.3Android基本控件和蓝牙通信网络首先介绍一些,简单的控件的编程。按键编程:先创建一个Button类,使用findViewById()去绑定UI界面的控件,然后在编写属于该按键的监听函数。监听函数有两种写法,一种是setOnClickListener()函数,另一种setOnTouchListener()函数。这两种的区别在于后者重写时,会多一个触屏事件变量MotionEvent,该变量可以检测按键的按下和弹起。有了以上的基本的控件编程了,接下来介绍一下,蓝牙相关的组件。想要调用Android手机的蓝牙组件,需要在AndroidManifest.xml文件中添加蓝牙的三条权限,接着就是去获得蓝牙适配器,只需BluetoothAdapter.getDefaultAdapter()函数获取即可。有了蓝牙适配器,即可对手机蓝牙进行打开和关闭操作。接下来就是蓝牙设备连接,当用户单击连接蓝牙时,就会由MainActivity跳转至BluetoothDeviceListActivity,同时传递请求码。BluetoothDeviceListActivity内部主要利用广播去获取蓝牙设备,并将搜索到的设备存放在界面的列表中。选择需要连接的蓝牙设备后,会将请求码和蓝牙设备地址传回MainActivity。MainActivity接收到返回的请求码后,会进入onActivityResult()中将获取的蓝牙地址转化为蓝牙地址类,并调用ChatService中的连接线程,与该蓝牙设备创建一个新的蓝牙串口通信网络。因为HC-05为蓝牙串口透传模块,蓝牙网络的UUID必须00001101-0000-1000-8000-00805F9B34FB。ChatService为官方例程提供的源码,只略做解释,该文件内含连接线程ConnectThread()、数据接收和发送线程ConnectedThread()以及接受连接线程,这里其实只是用到前了两个线程。4.4高德地图移植目前国内主流的两大地图开发平台为百度地图API和高德地图API,本应用采用高德地图,因为高德地图有着覆盖其全平台产品的近千篇的开发文档,并且平台还提供了覆盖核心产品典型使用场景的示例。在移植高德地图之前需要做以下几个准备:申请密钥Key。首先需要注册高德地图开放平台的账号,成为高德地图开放平台的开发者,然后进入个人用户的控制台,单击“应用管理栏”下的“我的应用”,创建新的应用。在创建的应用上点击"添加"按钮,在弹出的对话框,如下图5-6所示。接下来只要填写key名称,同时去Androidstudio平台获取调试版的安全码SHA1、发布版的安全码SHA1、以及PackageName,即可获得高德地图的Key,切记一个Key只能一个应用使用,否则会出现应用无法访问平台的问题。图4-7申请Key图获取图4-7中所需要的信息。回到Androidstudio平台,单击Build栏下的GenerateSignedBunldorAPK,创建一个APK的Key,并将其加入工程中,详细步骤可以查百度,这里不详细说了。单击Androidstudio平台左下角的Terminal,利用cd命令进入Java的bin中,再输入“keytool-v-list-keystore
<前面创建APK的Key的路径>”,然后就会得到发布版的SHA1,如图4-8。相对于发布版SHA1,调试版安全的SHA1获取就容易多了,具体操作如图4-9。最后就是获取PackageName,该信息只需打开AndroidManifest.xml文件,在开头就会有这一句“<manifestxmlns:android="http://S/apk/res/android"package="XXXXX">”,只需要吧XXXX的内容填入即可。单击提交,就会获得高德地图的Key。图4-8发布版的SHA1获取图图4-9调试版安全SHA1操作图添加高德地图的开发包。首先去高德地图API官网,单击开发支持下的Android导航SDK。然后下拉,找到“相关下载”,即可下载到高德地图的开发包,接下来将开发包的文件移植到工程文件夹内的lib文件夹内。再如图4-10操作,就完成了开发包的添加。图4-10build.gradle操作图添加权限和高德地图的Key,该操作全是在AndroidManifest.xml内完成。权限和高德地图具体内容,如图4-11。图中android:value的值为步骤二获取到的。图4-11权限和高德地图Key4.5Android应用导航功能设计思路首先,由于高德地图的API过于复杂,所以可以去高德地图的开放平台学习提供的例程,然后依照官方例程仿写自己需要实现的功能。先确定目标:使用MCU传过来的经度和纬度信息来定位,因此我们需要去平台的开发者指南寻找,发现仅在Android导航SDK开发指南里,有关于“传入外部GPS数据”指导和介绍。简单介绍高德地图的“传入外部GPS数据”,其等价于不再使用系统的定位点进行驱动了,导航SDK内部将会以您传入的定位点数据为标准进行无起点算路和实时导航,建议传入频率为一秒一次,否则可能影响导航效果。想要使用这一功能,需要做好以下几步:(1)开启外部数据定位点,调用AMapNavi的setIsUseExtraGPSData()方法开启使用外部定位点数据,将其设置为true。(2)传入外部GPS数据,调用AMapNavi的setExtraGPSData()方法传入外部定位点数据。注意:传入的定位点数据必须是WGS84坐标系(type传入1)或者高德坐标系(type传入2),并且经度、纬度、速度、精度、角度、时间参数缺一不可。
(3)调用导航API,实现导航。启动导航需要有导航的路径,所以算路的API也是不可缺少的。根据官方的开放指南,算路分为经纬度算路和POI算路,很明确我们使用的是外部GPS数据,因此选择经纬度算路。开发指南给的算路指导,如图4-12。图4-12算路代码例程图根据图4-12,我们只需将接收到的经纬度信息,填入NaviLatLng(double纬度信息,double经度信息).然后调用AMapNavi类下的calculateRideRoute进行算路即可。(4)定时器更新定位信息,并重新导航。采用了Android的定时器来定时更新经度和纬度信息,并重新启动导航,同时将航向角发送给MCU,以此实现实时导航。Android的定时器程序框架,如图4-13。图4-13定时器程序框架图不同Activity之间的数据传递。通过学习和查资料,了解的方法有两种,一种是Bundle和Itent,跳转界面来传递数据,该方法弊端,每秒会跳出一个导航界面,导致按下Android手机的返回键,无法立马返回主界面。第二种,定义一个Android应用的全局变量,所有的Activity都有修改和获取的权限。只需新建一个Java类文件,将其继承于Application,然后修改AndroidMainfest.Xml内application下的android:name=“全局变量文件名”即可。接下来,只需在全局变量文件内编写修改函数和获取函数,在Activity中调用,就能完成数据的传递。经纬度转化为高德地图坐标,该内容写在Android定时器任务里面的。讲转化前,先简单的介绍一下坐标体系。主要的坐标格式有WGS84格式、高德坐标以及百度坐标。WGS84为常见的GPS经纬度,而高德坐标和百度坐标是两个平台各自将WGS84进行处理后的坐标体系。因此,在使用外部GPS数据定位时,需要先将WGS84转化为高德坐标。至此关于Android应用方面的修改和编写已全部完成,剩下的就是不停的调试和修改,让小车和手机通信稳定。5系统测试与误差分析系统调试分为三部分:智能小车的硬件调试、智能小车的MCU软件调试、Android应用调试、整体调试。这样可以快速定位问题由哪
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夹层大型管道支吊架安装专项施工方案
- 2025年内蒙古大学创业学院马克思主义基本原理概论期末考试模拟题附答案解析(必刷)
- 2025年山西省职工工艺美术学院马克思主义基本原理概论期末考试模拟题带答案解析
- 2025年云南省昆明市单招职业适应性考试题库附答案解析
- 2025年宽甸满族自治县幼儿园教师招教考试备考题库带答案解析(必刷)
- 2024年长白山职业技术学院马克思主义基本原理概论期末考试题及答案解析(夺冠)
- 2025年天津商业大学宝德学院马克思主义基本原理概论期末考试模拟题附答案解析
- 珠宝公司会计核算实施方案
- 2024年舟曲县招教考试备考题库带答案解析(夺冠)
- 2025年香港中文大学马克思主义基本原理概论期末考试模拟题带答案解析(必刷)
- 江苏省扬州市区2025-2026学年五年级上学期数学期末试题一(有答案)
- 建筑与市政工程地下水控制技术规范
- “党的二十届四中全会精神”专题题库及答案
- 2025年天翼云解决方案架构师认证考试模拟题库(200题)答案及解析
- 2026年西藏自治区政府部门所属事业单位人才引进(130人)笔试备考试题及答案解析
- 油气开采毕业论文
- 血凝d-二聚体和fdp课件
- 2026-2031中国房地产估价市场分析预测研究报告
- 天津市和平区2025年高二化学第一学期期末监测试题含解析
- 人造喷雾造景施工方案
- 2025年大宗商品数字化交易平台可行性研究报告
评论
0/150
提交评论