使用Mosaichat和Arduino构建GPS / GNSS接收器

4,657

30.

7.

简介:使用Mosaichat和Arduino构建GPS / GNSS接收器

在以下步骤中,我们将看到如何使用Arduino和Arduiny构建GPS / GNSS Receiver莫纳希特。Mosaichat是一种基于的覆盆子PI兼容GNSS板Septentrio.模块,Mosaic-x5,厘米级多频带,多星座GPS / GNSS接收器。

紧凑型镶嵌使其非常方便,提供具有高精度和精确定位的IOT和机器人应用。Mosaichat项目是开源,在GitHub上完全记录,可以轻松制造或集成到不同的设计中:

https://github.com/septentrio-gnss/mosaichat.

第1步:组件

要构建此项目,我们需要以下组件:

  • Arduino Uno(或任何Arduino类型实际)
  • 莫纳希特
  • GNSS天线
  • 16 * 2 LCD屏幕(12C)
  • 面包板
  • 2 * 9V电池
  • 2 *电池连接器
  • 按钮
  • 电线

第2步:原理图

Arduino:

  • Arduino Vin>电池+ 9V
  • Arduino GND>电池GND

Mosaichat:

  • Mosaichat TX> Arduino D10
  • Mosaichat Rx> Arduino D11
  • Mosaichat + 5V>电池+ 9V
  • Mosaichat GND> GND

液晶显示器:

  • 屏幕SDA> Arduino A4
  • 屏幕SCL> Arduino A5
  • 屏幕VCC> Arduino + 5V
  • 屏幕GND> GND

按钮:

  • 按钮PIN> Arduino D2
  • 按钮PIN> GND

该示意图是使用开源软件设计的Fritzing.。您可以从中下载Mosaichat的Friczing部分这里

第3步:连接

  • 我已经使用了一个+ 9V电池,后来并行添加另一个电流以提供更高的电流(我们也需要为天线供电!)。实际上,使用锂电池等其他电源可能是更智能的想法。
  • 可以使用背面的可变电阻优化屏幕亮度。
  • 按钮连接处于高电平。

第4步:MOSAIC-X5配置

我们需要莫纳希特每次启动时都会通过COM2输出NMEA流(在MOSAICHAT中,COM1连接到覆盆子PI UART引脚,而COM2暴露出不同的FTDI连接)。Arduino将在LCD显示屏上读取消息和输出读数。

配置Mosaichat可以很容易地完成Septentrio.Web界面Mosaic-x5。通过USB将MOSaichat连接到您的PC,并在其默认地址上打开WebUI“192.168.3.1”下一个:

  • 去吧沟通标签并选择序列。
  • 改变波特率COM2.9600
  • 点击好的更改生效。
  • nmea / sbf出来并选择新的NMEA流
  • 选择序列号然后连接类型COM2.作为连接/端口。
  • 保留默认间隔(1秒)并选择GGA.作为输出的消息。
  • 点击好的更改生效。
  • 现在A.弹出消息将询问您是否希望将当前配置保存为引导配置。选择保存

恭喜!Mosaichat准备好了。是时候玩Arduino。

第5步:Arduino代码

以下是接收者的ArduInoc代码,同时发表评论。主要是,代码执行以下操作:

  • 设置I2C LCD显示屏和软件串行莫纳希特(正如我们不想使用Arduino的USB序列,保持它的计算机通信)
  • 读取来自Mosaichat的NMEA GGA消息,并将其解析为兴趣的读数。
  • 显示显示页面上的读数,并按照按钮点击,如下所示:
    1-质量和SVS编号
    2-纬度和经度
    3-高度和大流量分离

代码也上传到此github repo.

#include  #include  #include 软件晶体mosaicserial =软件(10,11);;// rx,软件串口Tx(Mosaichat连接)Liquidcrystal_i2C LCD(0x27,20,4);//将LCD地址设置为0x27,为16个字符和2行显示void setup(){pinmode(10,输入);//软件串口,输入模式Pinmode(11,输出);//软件串口,输出模式MOSAICSerial.Begin(9600); //软件串行连接到MOSAICHAT Serial.Begin(9600);//默认串行通过USB Pinmode连接到计算机(2,Input_Pullup);lcd.begin();lcd.Backlight();lcd.setcursor(1,0);lcd.print(“mosaichat”); lcd.setCursor(1,1); lcd.print(" &Arduino"); delay(1000); // wait a second to show the intro } String nmea_string,sreadString; String Latitude,Longitude,Latitude_direction,Longitude_direction,Quality_indicator,SVs_Number,Height,Geoid_separation,Quality_indicator_string; //nmea message elements String quality_string_array [6]={"No Fix","GNSS fix","DGPS","","RTK","RTK Float"}; //string meanings of quality indicator values bool nmea_flag=false,button_flag=false,push_button=true; int separator_indices[14]; int page=0,disp_counter=0; void loop() { push_button = digitalRead(2); push_button=!push_button; //convert from active LOW to active HIGH (true = clicked) // if(push_button == true &&button_flag==false){ page++; if(page>=3)page=0; button_flag=true; }else if(push_button==false){ button_flag=false; } while (mosaicSerial.available()) { char c; delay(2) ; //delay to allow buffer to fill if (mosaicSerial.available() >0) { c = mosaicSerial.read(); //gets one byte from serial buffer sreadString += c; //makes the string sreadString } } if(sreadString!="" ){ Serial.println(sreadString); nmea_flag=true; nmea_string=sreadString; } sreadString=""; if(nmea_flag){ int c=0; for(int i=0;i=10000){ // reducing update rate to avoid screen flickering lcd.clear(); if(page==0){ // first page: Quality and SVs umber lcd.setCursor(1,0); Quality_indicator_string = quality_string_array[Quality_indicator.toInt()]; lcd.print("Q: "+Quality_indicator_string); lcd.setCursor(1,1); lcd.print("SVs: "+SVs_Number); }else if(page==1){ // second page: Latitude and Longitude lcd.setCursor(0,0); lcd.print(Latitude+Latitude_direction); lcd.setCursor(0,1); lcd.print(Longitude+Longitude_direction); }else if(page==2){ // third page: Height and Geoidal Separation lcd.setCursor(1,0); lcd.print("H: "+Height+"m"); lcd.setCursor(1,1); lcd.print("S: "+Geoid_separation+"m"); } disp_counter=0; } }

第6步:制造住房

外壳可以采用不同的方法,形状和材料构建。我用激光切割器制作接收器的丙烯酸盒。激光切割器也可以用来制作一个木箱。找到激光切割器文件这里

第7步:开始玩!

您现在需要的只是连接GNSS天线并测试接收器。将接收器盒带到建筑物的屋顶或开放区域,并以最大数量的GNSS卫星测试。您也可以在更具挑战性环境中尝试。

第8步:进一步

莫纳希特

莫纳希特是集成的开源GPS / GNSS PCBSeptentrio.sMosaic-x5GNSS模块(以及其他Septentrio引脚兼容模块,如Septentrio的MOSAIC-SX),具有基本通信,可以堆叠到覆盆子PI系统中。

设计的目标是允许简单的硬件原型使用Mosaic-x5GNSS模块利用覆盆子PI功能。电路板也可以使用USB独立使用。

得到莫纳希特

直到这一刻,没有商店出售Mosaichat。但是,开源github repo.包括PCB设计和BOM,因此可用于使用本地/国际PCB制造服务制造MOSAICHAT。所有PCB组件都可用digikey.

Mosaic-x5

Septentrio的Mosaic-x5,多频带,多星座GNSS接收器,在低功耗表面安装模块中,具有各种接口,专为机器人和自主系统等大众市场应用而设计,能够跟踪所有全球导航卫星系统(GNSS)星座支持当前和未来的信号。具有独特的内置AIM +干扰减缓技术,Septentrio.在大众市场GNSS定位积木中提供绩效基准。

是第一个分享

    建议书

    • 时钟速度挑战

      时钟速度挑战
    • 玩具与游戏比赛

      玩具与游戏比赛
    • 大与小挑战

      大与小挑战

    7点评论

    0.
    5003700

    4天前

    做得好

    0.
    rain

    8天前

    很酷的项目和清晰的解释。然而,为董事会找到一个本地制造商可能会挑战(这仍然可以做出SMDS)。还有其他选择吗?

    0.
    Jamalhazem98.

    1天前回复

    谢谢!此时唯一的选择是制造Mosaichat。如果它被任何商店出售,会告诉你:)

    0.
    Zayedalam.

    8天前

    是的男人,但我有一个问题,我们只需要使用你所展示的再犯?

    0.
    Jamalhazem98.

    1天前回复

    不是真的,任何带有NMEA流的接收器都可以工作。