Microduino-NEO-6M

来自Microduino Wikipedia
Jasonsheng讨论 | 贡献2014年1月27日 (一) 06:29的版本
跳转至: 导航搜索
Microduino-NEO

这也许是你见过最精美的GPS模块,核心采用UBLOX NEO-6M模组,高灵敏度,更新速率最高可达5Hz,采用IPEX接口的迷你陶瓷天线,自带可充电后备电池。


==特色==
  • 高灵敏度;
  • 更新速率最高可达5Hz;
  • 有功能强大的PC上位机支持:u-center;
  • PPS指示灯,我们就可以很方便的判断模块的当前状态;
  • 自带可充电后备电池(支持温启动或热启动);
  • 小巧、便宜、堆叠、开放;
  • 开源的硬件电路设计,与 Arduino 兼容的编程开发环境程;
  • 统一的 Microduino 接口规范,和丰富的外围模块,可方便、灵活的与其他符合 Microduino 接口规范的模块、传感器进行快速的连接和扩展;
  • 2.54间距的排母接口方便集成到洞洞板。

Specifications

  • 通信协议:
    • Microduino NEO-6M模块默认采用 NMEA-0183 协议输出 GPS 定位数据,并可以通过 UBX 协议对模块进行配置;
  • 接收特性
    • 50 通道,GPS L1(1575.42Mhz) C/A 码,SBAS:WAAS/EGNOS/MSAS
    • 捕获追踪灵敏度:-161dBm
  • 定位精度
    • 2.5 mCEP (SBAS:2.0mCEP)
  • 更新速率
    • 最大 5Hz
  • 捕获时间
    • 冷启动 1:27S(最快)
    • 温启动:27S
    • 热启动:1S
  • 附:
    • 冷启动是指模块保存的GPS接收历史信息都丢失了(相当于主电源和后备电池都没电了),这种情况下重启,称之为冷启动。
    • 温启动是指模块保存了GPS接收历史信息,但是当前可视卫星的信息和保存的信息不一致了,这样的条件下重启,称之为温启动。
    • 热启动是指模块保存了GPS接收历史信息且与当前可视卫星信息一致,这样的条件下重启,称之为热启动。
  • 接口特性
    • TTL,兼容 3.3V/5V 单片机系统
    • 串口通信波特率:
      • Microduino NEO-6M模块支持多种通信波特率:4800、9600、38400(默认)、57600;
  • 通过模块上两个电阻(R3、R4,推荐1K阻值)设置波特率:
R3 R4 使用协议 波特率
不焊接 不焊接 NMEA 9600
不焊接 焊接 NMEA 38400
焊接 不焊接 NMEA 4800
焊接 焊接 UBX 57600

引脚说明

NEO-6M模块引脚名 Microduino引脚 功能
TX RX0(or D2) 模块串口发送脚(TTL电平),可接单片机的 RXD
RX TX1(or D3) 模块串口接收脚(TTL电平),可接单片机的 TXD


文件:NEO6M-Pinout-2.jpg
Microduino-NEO6M-Pinout
文件:NEO6M-Pinout-1.jpg
Microduino-NEO6M-Pinout


文档

Eagle PCB 文件:Microduino-NEO6M.zip


主要元件


开发

  • 请先确定+3.3v电源的电流能达到200ma,不推荐直接采用FT232R调试,因为FT232R输出的+3.3v的电流太小。

Arduino库及支持包

  • Microduino NEO-6M模块默认与Core的串口通讯引脚是RX0、TX1,因此不可直接与Microduino FT232R叠加

PC上位机调试时

  • 需要直接通过串口调试时:
    • 不直接叠加FT232,应该将FT232与NEO-6M二者的RX0、TX1交叉连接。

用FT232R、Core下载、调试程序时

  • 若保持默认跳线(RX0、TX1):
    • 下载程序时请拔下Microduino NEO-6M模块;
  • 玩家自己改动模块背面的跳线:切断两组的焊盘中间与RX0/TX1的连线,将焊盘中间与D2、D3焊上即可。
    • 若采用了改跳线的方法,可将Microduino NEO-6M与Core的串口连接由TX-RX0、RX-TX1改成:TX-D2、RX-D3(相对Core+的Serial1)

PPS状态指示灯

  • 该指示灯连接在 UBLOX NEO-6M 模组的TIMEPULSE 端口,该端口的输出特性可以通过程序设置;
  • PPS指示灯,在默认条件下(没经过程序设置),有 2 个状态:
    • 常亮,表示模块已开始工作,但还未实现定位;
    • 闪烁(100ms 灭,900ms 亮),表示模块已经定位成功。
  • 通过 PPS指示灯,可以很方便的判断模块的当前状态,方便使用。

连接方式

  • 如果采用Microduino FT232R调试,不可直接叠加,因为FT232与NEO-6M的串口RX、TX管脚定义一致,而正常的串口通信应该TX与RX交叉相连;
  • 模块与单片机连接最少只需要 4 根线即可:
    • VCC 和 GND用于给模块供电,模块 TXD 和 RXD 则连接单片机的 RXD 和 TXD。
    • (附:这里特别注意,模块的 TXD 和 RXD 脚不能直接连接到电脑的 RS232 串口上,必须经过电平转换芯片(MAX232 之类的),做电平转换后,才能与之连接)

应用

程序下载

测试程序:文件:Program Test NEO-6M.zip

测试Microduino NEO-6M模块

  • 所需要准备的硬件有:Microduino FT232R、Microduino Core、Microduino OLED、Microduino NEO-6M;
  • 所需要准备的软件有:Arduino IDE(1.0版本以上)、Adafruit_GPS库、Microduino提供的测试程序(Arduino端);
  • 所需要准备的环境有:空阔地带,请勿在室内测试。
  • 将下载好的库文件夹放入Arduino IDE安装文件夹内的libraries中;
  • 启动Arduino IED,打开Microduino提供的测试程序,板卡选择Microduino Core (Atmega328P@16M,5V),直接下载即可;
  • 下载完毕后可观察OLED:
    • 半分钟左右,日期、时间将会先显示出来;
    • 继续等待,当你看到Microduino NEO-6M的PPS指示灯闪烁时,速度、经纬度指标都因该能显示出来,如果没有,请重启Microduino Core。


库的使用事项

  • 针对Adafruit_GPS库:
    • 请确认void setup()中GPS模块波特率为38400,即:GPS.begin(38400);
    • 如果您未曾改动过模块背面的跳线:
      • 下载程序时请拔下Microduino NEO-6M模块;
      • 使用Core或者Core+调试时,需要确定程序有如下定义:Adafruit_GPS GPS(&Serial);
    • 如果您改动过模块背面的跳线:
      • 使用Core+调试时,需要确定程序有如下定义:Adafruit_GPS GPS(&Serial1);
      • 使用Core调试时,需要确定程序有如下定义:SoftwareSerial mySerial(3, 2);、Adafruit_GPS GPS(&mySerial);


用u-center配置模块更新速率

  • 首先我们将 Microduino NEO-6M置于空阔的地方,并且通过Microduino FT232R连接到电脑;
  • 打开 u-center 软件
    • 先设置波特率:菜单:“Receiver”-“Baudrate”-“38400”;
设置波特率
    • 再打开相应串口开始通信:菜单:“Receiver”-“Port”-选中Microduino FT232R所对应的串口。
设置串口
    • 现在,就可以在u-center看到相应数据了;
观察数据
  • 更新速率的配置
    • 打开菜单:“View”-“Messages View”,调出Messages窗口;
    • 打开“UBX”-“CFG(Config)”-“RATE(Rates)”,假设你需要2HZ的更新速率,只要将 Measurement Period设置为500ms;
    • 配置完成后,点击窗口左下角Send按钮,就可将配置发往Microduino NEO-6M模块;可看到其他信息窗口的数据更新速度变快了,说明设置成功。
配置窗口

Pictures

Microduino NEO Front


Microduino NEO Back