历史上的今天
返回首页

历史上的今天

今天是:2024年09月09日(星期一)

正在发生

2020年09月09日 | 采用MSP430的机器人定位系统电路设计

2020-09-09 来源:elecfans

  对于在室外环境工作的移动机器人通常使用惯导/卫星组合导航方式。惯性导航系统具有完全自主、抗干扰强、隐蔽能力好和输出参数全面等优点,但它的鲁棒性极低,误差会不断随时间累积发散。卫星导航系统具有精度高、定位范围广和误差不随时间累积等优点,但其自主性差、易受外界遮挡和干扰、接收机数据更新频率低等缺点。因此工程上常常将两者互补结合使用,组成卫星/惯性组合导航系统。


  本文以低功耗MSP430F149为核心,设计了能够同时实现卫星导航(GNSS)接收机、惯性测量单元(IMU)、气压高度等导航信息的高速采集与高速合路传输,并进行初步导航定位信息融合的导航系统,即可为室外移动机器人提供直接的导航服务,也可作为高精度组合导航系统的原始测量信息高速采集系统。系统设计的关键是利用单片机有限的接口资源实现了多传感器信息并行采集,设计了有效的数据同步方法,解决了气压传感器数据手册疏漏导致的无法接入问题,给出了机器人组合定位的基本方法。系统充分利用了MSP430F149单片机的能力,具有结构简单、低功耗、对传感器具有普适性等优点。


  本系统由电源、气压计接口、IMU接口、GNSS接收机接口、SPI转UART模块及MSP430F149构成。系统组成如图1所示。组合导航系统的功能实现分为IMU数据接收与解析、GNSS数据接收与解析、气压计数据接收与解析、组合导航解算以及数据输出五个部分。IMU数据接收与解析功能用来获取导航解算中需要的加速度和角速度信息;GNSS数据接收与解析功能用来获取导航解算中需要的位置和速度信息(松耦合组合)或者 GNSS伪距和伪距率(紧耦合组合);气压计数据接收与解析功能用来获取高度信息;组合导航解算功能为系统核心,用来进行组合导航解算;数据的输出包括原始数据包的整合输出和解算结果的输出。

  采用MSP430的机器人定位系统电路设计

  图1 系统组成结构图


  本文所使用的惯性器件和GNSS接收机都是RS-232电平的UART接口,具有通用性,用户可根据成本考虑不同精度的设备。气压计选用美国MEAS公司生产的MS5803-02BA,已经固化在电路中。


  微控制器接口

  整个组合导航定位系统需要三个UART接口和两个SPI接口。其中两个UART接口由430单片机自带的UART资源提供,另外一个UART接口由 GPIO模拟SPI通过MAX3111E芯片转化得到;两个SPI接口由GPIO模拟得到。另外需要一个外部中断引脚捕获秒脉冲信号(PPS)、一个外部中断引脚捕获MAX3111E中断信号。MSP430F149管脚资源分配如表1所示。


  电源电路

  本系统供电需求为3.3V供电,因此采用AMS1117稳压芯片,接入5V电源即可输出3.3V稳定电压,可提供1A电流,满足系统供电需求。电路设计如图2所示。

  采用MSP430的机器人定位系统电路设计

  图2 电源电路


  IMU器件及GNSS接收机接口电路

  IMU器件及GNSS接收机都采用UART接口方式接入,采用RS232协议。因此可使用430单片机上自带的两个UART接口,但是需要进行TTL电平与RS232电平转换。这里采用常见的MAX3232芯片,电路设计如图3所示。

  采用MSP430的机器人定位系统电路设计

  图3 IMU及GNSS接口电路


  气压计MS5803-02BA接口电路

  MS5803-02BA[3]是由MEAS公司生产的数字压力传感器,分辨率达10cm。芯片内部包含一个高线性的压力传感器和一个内部工厂标定系数的超低功耗24位ΔΣ型ADC。该款芯片有SPI和I2C两种接口方式,通过芯片的PS引脚配置了选择不同的接口方式(PS置低时,采用SPI工作模式;PS置高时,采用I2C工作模式)。本文所阐述的定位系统将气压计配置为SPI工作模式。MS5803-02BA与微控制器间的接口电路设计如图4所示。

  采用MSP430的机器人定位系统电路设计

  图4 MS5803-02BA接口电路


  MS5803-02BA的控制命令包括复位命令、温度ADC命令、气压ADC命令、ADC读取命令、PROM读取命令。控制命令如表2所示。控制命令通过SDI口移位输入,响应结果从SDO移位输出。输入的电平判定在时钟信号的上升沿,输出的电平判定在时钟信号的下降沿。输出的气压值可以进行温度补偿,需要利用芯片内部PROM中的系数来补偿。ADC读取命令输入之后,输出24位ADC结果;PROM读取命令输入之后,输出16位补偿系数。


  本文基于MSP430F149单片机设计的室外移动机器人组合导航定位系统,通过接口的扩展使得该款定位系统能够接入IMU、GNSS接收机、气压计三路信息,完成初步导航定位服务功能,同时可作为多路数据采集设备,将多路数据整合到一路高速输出接口,用于进一步的高精度导航解算。该系统根据使用者的需求不同,可接入不同成本和精度的设备,只要满足RS-232协议即可。笔者将其实际运用,整个系统充分利用该款单片机的资源,结构简单、功耗低、适用范围广,不仅可作为初步导航定位服务的设备,还可作为多路数据采集设备。

推荐阅读

史海拾趣

Global Components & Controls公司的发展小趣事
如果R4受照后亮度仍不稳定,可以考虑增加R3的阻值来进行微调。
Corex Intervest Inc公司的发展小趣事

Corex Intervest Inc公司在电子行业的发展历程中,始终保持着稳健的步伐和进取的精神。公司不断适应市场变化和技术更新,不断调整战略方向和发展重点。在未来,公司将继续加大研发投入,拓展新的应用领域和市场空间,为电子行业的发展贡献更多的力量。

这五个故事展示了Corex Intervest Inc公司在电子行业中的发展历程和取得的成就。从创立初期的艰难起步到技术创新、市场拓展、战略合作和持续发展的不断推进,Corex Intervest Inc公司始终保持着积极进取的精神和不断创新的态度,在电子行业中取得了显著的成绩。

欧密格光电(Amicc)公司的发展小趣事

在技术创新和产品创新的基础上,Corex Intervest Inc公司开始积极拓展市场。公司通过参加国际电子展览、与各大电商平台合作等方式,不断提升品牌知名度和影响力。同时,公司还注重与客户的沟通与合作,根据客户需求定制产品方案,赢得了客户的广泛信任和好评。

固驰(GUERTE)公司的发展小趣事

浙江固驰电子有限公司,即固驰(GUERTE)品牌的发源地,于1995年在浙江省丽水市创立。公司由范*先生创立,初期专注于半导体器件的生产。经过数年的不懈努力,固驰电子逐渐在行业内崭露头角,通过持续的技术创新和产品优化,成功开发出ZQ系列整流管芯、CELL芯片、5-200A单三相整流桥及电力半导体模块等核心产品。这些产品广泛应用于变频器、逆变焊机、UPS电源等领域,为公司的快速发展奠定了坚实基础。

Dongguan Jingyue Electronics Co Ltd公司的发展小趣事

随着公司业务的不断扩大,Dongguan Jingyue Electronics Co Ltd面临着越来越复杂的供应链管理问题。为了降低成本、提高效率,公司决定对供应链进行优化。通过引入先进的供应链管理软件和系统,加强与供应商和物流公司的合作,公司成功实现了供应链的数字化和智能化管理,提高了整体运营效率。

Asian Best Components Co Ltd公司的发展小趣事

在电子行业的快速发展中,Asian Best Components Co Ltd始终坚持环保理念,致力于推动绿色生产。公司积极采用环保材料和工艺,减少生产过程中的废弃物排放和能源消耗。同时,公司还加大了对环保技术的研发投入,推出了一系列环保型电子元件,为行业的可持续发展做出了积极贡献。这种环保理念不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

单片机入户工程实践训练中心

 随着单片机在工程技术中越来越广泛的应用,社会用人单位对单片机专项人才的需求越来越迫切。单片机技术正成为工程技术人员的基本技能之一。       紧跟时代形势,我校单片机实验室便在工程实践训练中心应运而 ...…

查看全部问答>

Verilog的程式实现

我想请教各位大大 我正在写一个关于时间和频率最大相似估测的程式 他里面有个方块图是这样的 ρ/2 〖|.|〗^2 我知道ρ的运算过程是这样的... ρ= (E{〖|s(k)|〗^2})/(E{|〖s(k)〗^2 | }+E{|〖w(k)〗^2 |})=(σ_s^2)/(σ_s^2+σ_w^2 )=SNR/(SNR ...…

查看全部问答>

神啊,救救我啊,还是红外接收的

上午去买了几个新的红外接收管 回来写了个小程序测试,接收管接收到红外信号就会输出一个低信号,然后MCU就控制一个红灯亮一下 开始我用电视遥控器试发现红灯亮的和我按的不一致,不是我按了它不亮就是我没按它却亮了, 后来发现原来我只要用手一 ...…

查看全部问答>

发出来的电,电压小于6V,此时用蓄电池还能对他充电嘛??

发出来的电,电压小于6V,此时用蓄电池还能对他充电嘛??我在做跑步机的项目,发现我们的发电机发出来的电,电压太小,请问市场上有没有其他好一点的发电机啊 ??另外蓄电池方面可否还有其他种类的型号,满足低电压下,能实现充电 的??????…

查看全部问答>

再问个关于操作系统任务的问题

在看一个项目的代码 底层初始化的不说了,进入root任务之后,创建task1,task2,task3等几个任务,创建任务的时候设定优先级, task1,task2等的代码如下 例如 void task1() { ....   while(1)    {     proce ...…

查看全部问答>

导航夹克

今天就再给大家带来一款具有实时定位功效的夹克。这件衣服比运动鞋乃至迷你GPS更强悍之处在于采用了GPSoverIP技巧,即使穿夹克的人身处室内也难逃“魔爪”。 首先需要解释下什么叫做GPSoverIP,这技巧能够通过电脑网络,供给地理上标点然后传送经过 ...…

查看全部问答>

为DC/DC转换器选择正确的电感器与电容器

本帖最后由 dontium 于 2015-1-23 13:31 编辑 为DC/DC转换器选择正确的电感器与电容器 随着便携式电子产品的体积在不断缩小,其复杂性同时也在相应的提高。这使得设计工 程师面临的问题越来越多,如电池使用寿命、占板空间、散热或功耗等。本文 ...…

查看全部问答>

有谁用过430写入U盘数据

比如对U盘里的文件添加和修改数据。…

查看全部问答>

关于dma的

有没有人用em-stm3210e这款开发板的?貌似公司提供的DMA例程有问题 连一些基本的显示都没有有没有人知道怎么改? …

查看全部问答>

MC9S08QE32 SCI 通信

大家好!     我们用MC9S08QE32发现串口数据紊乱,但是用MC9S08QE128发现程序正常,请问大家是什么原因? 下面是我们的测试代码:   unsigned char *string1=\"  Welcome \\r\\n\";   MCU_Init();  ...…

查看全部问答>