DTrac-卫星跟踪系统

一款便携式卫星跟踪系统,用手机控制Rotor和Radio进行业余卫星通联

用户工具

站点工具


dtrac_app

DTrac APP

DTrac APP可以自动控制旋转器和电台,是给HAM朋友们量身定制的APP。

一次成功的卫星通联,需要最新的卫星星历和最新的卫星转发器数据作为支撑,然后通过控制旋转器(天线)和电台等硬件实施,一款合适的卫星通联辅助软件是必不可少的。

DTrac APP集百家之长,不断更新和完善功能,欲打造一款更适合业余卫星通联的手机版辅助软件。

功能概述

DTrac APP支持手动和自动两种模式对星操作,通过Celestrak.org在线更新星历数据,通过SatNOGS.org在线更新卫星转发器数据,并通过与Look4Sat相同的PREDICT SGP算法提供精准的卫星过境预测。DTrac APP可以同时操控多套设备联动,比如可以通过Wi-Fi同步控制旋转器旋转,支持实时显示旋转器(天线)姿态角,通过Wi-Fi或蓝牙同步控制电台多普勒频率偏移、异频切换、亚音设定、模式变更等,通过BLE连接姿态传感器,辅助控制旋转器旋转。支持Hamlib、EasyComm、PELCO-D、Yaesu GS232B等诸多接口或协议对接,并支持在Android V4.0.3以上系统兼容运行。

下载地址

DTrac APP for Android : 下载最新版

安装后,首次启动,APP会进行初始化操作。

引导界面

APP首次引启动导界面会显示多语言选择项,支持的语言有简体中文、繁體中文、English,点击你所能接受的语言选项,将作为APP全局界面显示语言。

隐私政策,请自愿选择同意或不同意,不同意则退出APP。

本APP最少需要获取位置和文件读写权限才能正常运行,在需要使用这些权限时,会提示权限申请界面,请尽量全部选是或同意。

位置权限可在手机设置里面选择模糊定位或精确定位,模糊定位速度比精确定位块,适合在任何场所,精确定位则略慢,但精度更高。

跟踪界面

跟踪界面主要负责控制旋转器(天线)指向目标卫星和同步电台的通联参数,来达到通联业余卫星的目的。该界面提供当前时间、多普勒频率、亚音、模式、旋转器状态、电台状态,以及卫星状态的参数展示,并有手动对星操作辅助显示和警示功能、卫星入境提醒等,支持实时显示旋转器(天线)姿态角。

以不同的颜色来区分角度,红色为实时卫星角度,黑色为手机姿态角,蓝色为旋转器(天线)姿态角。

手动模式显示手机姿态角,自动模式显示旋转器(天线)姿态角。

卫星入境提醒

当卫星临入境,默认仰角大于-1°且小于0°时,系统会发出断续“滴”声警示音。点击顶部标签栏,可以开关卫星入境提醒功能。

手动模式

手动模式是在不使用旋转器的场景下,使用APP手动调整天线的模式,或者通过点击APP方向按钮进行手动微调旋转器对星操作的模式。不使用旋转器的纯手动模式,可以将手机固定在天线上使用,已达到最佳效果。

APP启动默认是手动模式,模式按钮为禁用状态,箭头功能禁用。该模式下可以完成手动对星功能,当手机顶部正对目标卫星时,系统会发出断续的“滴”声警示音,同时箭头颜色会由红色变为黑色,箭头背景由透明变为灰色。手动模式下以黑色字体显示手机姿态角。

自动模式

自动模式,是使用APP自动控制旋转器调整天线的模式。

当旋转器连接后,模式按钮为启用状态,箭头功能启用。点击模式按钮,系统会切换到自动模式,同时箭头颜色全部变为黑色,箭头背景全部变为灰色背景。此时,如果点击箭头,旋转器(天线)会按照箭头所示方向动作。如果旋转器支持角度回传的话,自动模式下将以蓝色字体显示旋转器(天线)姿态角,否则显示星号。

预测界面

预测界面提供单星预测和常用卫星预测两种预测功能。最新版本卫星预测采用与著名业余无线电软件look4sat相同的类库:predict4java,预测精度可以保证。预测结果列表滚动时会预加载下一个时段的预测结果,点击预测结果列表项目,会切换到相应的功能展示。点击顶部标签栏,可以开关单星预测轨迹图是否跟随显示卫星高度和距离等数据。

单星预测

单星预测平面卫星运行轨迹图

单星预测平面卫星运行轨迹图,会同时跟随显示卫星高度和距离。

单星预测卫星轨迹雷达示意图

单星预测卫星轨迹雷达示意图,显示卫星编号、过境日期、升起降落时间、升起降落时的方位角和最大仰角。滚动预测结果列表,会预加载下一时段的预测结果。

常用卫星预测

常用卫星预测,提供个人收藏的常用卫星的预测结果,分别分两行显示,第一行显示入境时间,第二行显示卫星编号、卫星名称和最大仰角。滚动预测结果列表,会预加载下一时段的预测结果。

星历界面

星历界面提供所有星历或常用星历的展示,可以通过卫星编号或卫星名称进行动态模糊搜索。点击顶部标签栏,可以切换星历的显示模式。

点击星历列表项目可以打开无线转发器参数维护界面,无线电转发器详情会可自动滚动到当前设定的频率、模式对应节点。

转发器参数维护界面

卫星转发器可能存在多组频率和对应的模式、模式倒置等参数,根据你感兴趣的通联频率来进行选择。

这里可以维护所点卫星相关的无线转发器参数,此参数直接影响跟踪界面的对应的电台同步数据,主要由下行频率、上行频率、亚音、模式、模式倒置组成,以上所有取值,可通过点击转发器对应条目数据逐一赋值。

下行频率

下行频率,对应DOWN_LOW的值,通过点击对应的条目数据赋值,单位是MHz。

上行频率

下行频率,对应UP_LOW的值,通过点击对应的条目数据赋值,单位是MHz。

亚音

亚音的取值,一般来源于分类条目的标题,这个目前需要手动填写,单位是Hz。

模式

模式,对应MODE的取值,通过点击对应的条目数据赋值。

模式倒置

模式倒置,对应INVERT的取值,该值仅在线性转发器单边带模式下适用,可以判断此值反转单边带发射模式,通过点击对应的条目数据赋值。0:代表不倒置;1:代表倒置。

设置界面

设置界面提供APP相关系统设置和维护,包括软件设置、星历更新、转发器数据下载、用户位置设置、旋转器设置、电台设置等。

多语言支持

DTrac APP支持简体中文、繁體中文、English三种语言支持,APP默认打开显示为简体中文,可手动切换设置需要的语言支持。

星历模式

星历模式可选择所有卫星模式或常用收藏卫星模式,也可以通过点击星历界面的顶部标签栏,快捷切换星历模式。

最小激活仰角

这里可以设置卫星最小仰角为全局参数,作为跟踪和预测模式的启用条件之一,以过滤掉不必要的动作。

入境提醒开关

这里可以开关入境提醒功能,也可以通过点击跟踪界面顶部标签快速开启或关闭。

入境提醒仰角

配合入境提醒开关设置,当卫星到达入境提醒仰角时激活提醒动作,默认角度为-1度。

指南针模式

指南针模式是手动对星操作的辅助功能,在你需要的时候可以开启这个功能。

地图版本

预测界面的世界地图支持中国版本和欧洲版本之间切换。

恢复默认设置

这里可初始化设置参数,请谨慎操作。

星历和卫星转发器数据更新

在申请文件读写权限后,通过Celestrak 和 SatNOGS 权威网站在线更新星历和卫星转发器数据,供跟踪和预测使用。APP启动时自动更新一次Amateur星历。

用户位置设置

在申请位置权限后,每次APP启动时都会自动更新一次GPS位置信息,也可以手动修正数据,点击“GPS定位”可以手动调用手机传感器更新一次位置信息。可以在APP权限里面选择定位精度。

姿态传感器辅助

传感器辅助支持手机传感器辅助和外置传感器辅助,外置传感器辅助通过BLE或网络通道来实现数据传输。详见 使用姿态传感器辅助

手机传感器

利用手机自带的姿态传感器,来实现对旋转器的辅助控制,需要将手机水平向前固定在天线臂上来实现。

外置传感器

利用外置的姿态传感器,来实现对旋转器的辅助控制,需要将外置传感器固定在天线臂上来实现。外置传感器目前支持维特蓝牙5.0系列的传感器,如:WT9011DCL-BT50、BWT901BLECL5.0,后续根据需求陆续添加其他型号的传感器。

磁偏角的设置方法

磁偏角,是指地球表面任一点的磁子午圈同地理子午圈的夹角。地球磁场是在不断变化的,所以磁偏角的度数是测量出来的,不是计算出来的。在我国,正常情况下,磁偏角最大可达6度,一般情况为2-3度。

通过上网可以自动查询您所在地区的磁偏角,手机访问 http://www.ngdc.noaa.gov/geomag-web/,会提示该网站“想使用你当前的位置”,点击“好”或“允许”。显示结果如下:

图中底部“ declination”即为你所在位置的磁偏角,此例显示我所在位置的磁偏角是“-4.8”,将“-4.8”通过DTrac软件磁偏角设置菜单修改即可。此值为DTrac Rotor专用变量,通过APP设置传递给DTrac Rotor旋转器。

大家也可以下载crowdmag(磁场测量软件)APP,直接在手机上打开应用查询。下载地址: crowdmag.v2.1.2.apk

可控设备发现协议

APP端使用端口60059通过UDP广播,格式如下:

  • cmd=ping

旋转器或电台等可控设备端收到广播后通过UDP回复数据,参数用&分隔,格式如下:

  • cmd=pong&type=1&ip=192.168.4.1&port=4533&id=00000000000000&lat=36.5&long=106.6&alt=12.5

其中:

  • 固定包头:cmd=pong
  • 设备类型代码:type=1 (1=rotor 2=radio …)
  • 设备IP地址:ip=192.168.4.1
  • 设备TCP服务端口:port=4533
  • 设备识别码(14位):id=00000000000000
  • 设备纬度:lat=36.5
  • 设备经度:long=106.6
  • 设备海拔高度:alt=12.5

注:当APP位置更新模式设置为手动时,才接受旋转器位置信息同步

支持的旋转器类型

DTrac Rotor

DTrac Rotor使用的是精简过的EasyComm I协议,协议内容可参考EasyComm I协议,在同一网络中,DTrac APP可以自动识别并对接DTrac Rotor,而不需要您繁琐的操作。详见 DTrac Rotor

Hamlib Rotctld

该协议需要通过Wi-Fi连接Hamlib中间件方式实现,支持常见的旋转器,更多支持的旋转器型号可通过 rotctld -l 命令获取,最新列表也可以从这里查阅 https://github.com/Hamlib/Hamlib/wiki/Supported-Rotators

  • Rotator Commands
  • P, set_pos 'Azimuth' 'Elevation'
  • Set position.
  • 'Azimuth' and 'Elevation' are floating point values.
  • Azimuth can be -180 to 540 depending on the rotator to allow for rotators facing south and the capabilities of the rotator.
  • Elevation can be -20 to 210 depending on the rotator.
  • For example:
  • P 163.0 41.0
  • Note: If the rotator does not support setting elevation (most do not) supply “0.0” for 'Elevation'.

如何使用Hamlib中间件,请点击这里查阅 如何使用Hamlib中间件操控旋转器和电台

EasyComm I

该协议需要通过Wi-Fi直接连接旋转器方式实现,是AMSAT专为业余卫星旋转器定制的控制协议。

  • Overview EasyComm I standard commands:
  • The host PC issues a single line command as follows -:AZaaa.a ELeee.e UPuuuuuuuuu UUU DNddddddddd DDD
  • AZaaa.a Azimuth - numeric data with decimal place (no fixed width)
  • ELeee.e Elevation - numeric data with decimal place (no fixed width)
  • UPuuuuuuuuu Uplink frequency in Hertz
  • DNddddddddd Downlink frequency in Hertz
  • UUU Uplink mode (ASCII - e.g. SSB, AM or FM)
  • DDD Downlink mode (ASCII - e.g. SSB, AM or FM)

EasyComm II

该协议需要通过Wi-Fi直接连接旋转器方式实现,是AMSAT专为业余卫星旋转器定制的控制协议,支持角度回传命令。

The EasyComm 2 standard is an enhanced protocol to allow full station control and also feedback from external systems.

The host PC issues commands to the controller by sending a 2 character command identifier followed by the command value. Commands are separated by either a space or carriage return or linefeed. Not all commands need to be implemented, and the most basic system may only decode the rotator control commands.

The Host PC can issue the following commands -:

Command Meaning Perameters

——- ——- ———-

  • AZ Azimuth number - 1 decimal place
  • EL Elevation number - 1 decimal place
  • UP Uplink freq in Hertz
  • DN Downlink freq in Hertz
  • DM Downlink Mode ascii, eg SSB, FM
  • UM Uplink Mode ascii, eg SSB, FM
  • DR Downlink Radio number
  • UR Uplink Radio number
  • ML Move Left
  • MR Move Right
  • MU Move Up
  • MD Move Down
  • SA Stop azimuth moving
  • SE Stop elevation moving
  • AO AOS
  • LO LOS
  • OP Set output number
  • IP Read an input number
  • AN Read analogue input number
  • ST Set time YY:MM:DD:HH:MM:SS
  • VE Request Version

For those commands that require a response, the response is an echo of the command followed by the response. If the command specifies a field number (eq. AN or IP), then the two numbers are delimited with a comma.

eg. To read an analogue value, the host sends ANx where x is the analogue

channel number.

In response the controller will reply with ANx,yyy where yyy is the

value read on the analogue port.

eg. To find the controller version number, the host sends VE.

In response the controller sends VExxx where xxx is an ascii string

containing the version number.

All strings sent in either direction are not of fixed length.

The controller can also send unsolicited information back to the host. This information may be used by the host for alarms or just control feedback. All of the above commands may be sent by the controller for information, and in addition the following may also be sent

ALxxx Alarm, where xxxx is an ascii string with the alarm info.

参考: https://www.amsat.org/amsat/ftp/software/win32/wisp/easycomm.txt

PELCO-D

该协议需要通过网络直接连接旋转器方式实现,是专为监控云台制定的控制协议。PELCO-D默认模式下仅支持角度控制和角度回传的型号,如亚安YAAN YL3040,当启用手机传感器辅助功能后,可以支持上下左右简单指令的型号,如301等云台,地址码默认为01。详见 使用亚安云台YAAN YL3040

关于云台在PELCO-D协议的控制指令。以下add代表云台的地址,SUM代表校验和,即第2至6位和的低8位。

  • 水平角度控制指令
  • FF add 00 4B dat1 dat2 SUM
  • add为云台地址,dat1为预设角度高8位,dat2为预设角度底8位,SUM为第2至6位和的低8位。
  • dat1«8 + dat2 = 角度*100
  • 例如设置地址1的云台到180度的位置的指令码为
  • FF 01 00 4B 46 50 E2
  • 水平角度查询指令
  • FF add 00 51 00 00 SUM
  • 垂直角度控制指令
  • FF add 00 4D dat1 dat2 SUM
  • dat1为预设角度高8位,dat2为预设角度底8位,
  • 当角度为负时,dat1«8 + dat2 = 角度*100
  • 当角度为正时,dat1«8 + dat2 = 36000 - 角度*100
  • 例如设置地址1的云台到-20度的位置的指令码为
  • FF 01 00 4D 07 D0 25
  • 设置地址1的云台到20度的位置的指令码为
  • FF 01 00 4D 84 D0 A2
  • 垂直角度查询指令
  • FF add 00 53 00 00 SUM
  • 5、水平回传的指令为
  • FF add 00 59 dat1 dat2 SUM
  • 计算方法同水平设置指令
  • 垂直回传指令为
  • FF add 00 5B dat1 dat2 SUM
  • 计算方法同垂直设置指令

Yaesu GS232B

  • C 返回,当前水平角度
  • B 返回,当前仰角角度
  • L 水平左转(角度变小)
  • R 水平右转(角度变大)
  • U 仰角上升(角度变大)
  • D 仰角下降(角度变小)
  • A 水平停止
  • E 仰角停止
  • S 水平和仰角都停止
  • O 设置量程,记忆旋转器物理角度,记忆水平 0 度
  • F 设置量程,记忆旋转器物理角度,记忆水平 360 度
  • X1 设置速度低速
  • X2 设置速度中低
  • X3 设置速度中高
  • X4 设置速度高速
  • C2 返回,当前水平角度和仰角角度 “AZ=aaa EL=eee”
  • O2 设置量程,记忆旋转器物理角度,水平 0 度和仰角 0 度
  • F2 设置量程,记忆旋转器物理角度,水平 360 度和仰角 90 度
  • RST 恢复出厂设置
  • VER 读取固件版本号,指示灯闪烁提示。同时输出一些调试信息。
  • MXXX 设置水平旋转角度 0-360
  • WXXX YYY 设置 水平旋转角度 0-360,设置仰角旋转角度 0-90 度

支持的电台类型

DTrac Radio

DTrac原生态蓝牙控制开放协议,详见 DTrac Radio,期待您的加入!

Hamlib Rigctld

该协议需要通过Wi-Fi连接Hamlib中间件方式实现,支持常见的电台,更多支持的电台型号可通过 rigctld -l 命令获取,最新列表也可以从这里查阅 https://github.com/Hamlib/Hamlib/wiki/Supported-Radios

如何使用Hamlib中间件,请点击这里查阅 如何使用Hamlib中间件操控旋转器和电台

  • Commands
  • F,  set_freq 'Frequency'
  • Set 'Frequency', in Hz.
  • Frequency may be a floating point or integer value.
  • M,  set_mode 'Mode' 'Passband'
  • Set 'Mode' and 'Passband'.
  • Mode is a token: ‘USB’, ‘LSB’, ‘CW’, ‘CWR’, ‘RTTY’, ‘RTTYR’, ‘AM’, ‘FM’, ‘WFM’, ‘AMS’, ‘PKTLSB’, ‘PKTUSB’, ‘PKTFM’, ‘ECSSUSB’, ‘ECSSLSB’, ‘FA’, ‘SAM’, ‘SAL’, ‘SAH’, ‘DSB’.
  • Passband is in Hz as an integer, -1 for no change, or ‘0’ for the radio backend default.
  • Note: Passing a ‘?’ (query) as the first argument instead of a Mode token will return a space separated list of radio backend supported Modes. Use this to determine the supported Modes of a given radio backend.
  • V,  set_vfo 'VFO'
  • Set 'VFO'.
  • VFO is a token: ‘VFOA’, ‘VFOB’, ‘VFOC’, ‘currVFO’, ‘VFO’, ‘MEM’, ‘Main’, ‘Sub’, ‘TX’, ‘RX’, ‘MainA’, ‘MainB’, ‘MainC’, ‘SubA’, ‘SubB’ ‘SubC’.
  • In VFO mode (see –vfo option above) only a single VFO parameter is required:
  • $ rigctl -m 229 -r /dev/rig -o
  • Rig command: V
  • VFO: VFOB
  • Rig command:
  • S,  set_split_vfo 'Split' 'TX VFO'
  • Set 'Split' mode.
  • Split is either ‘0’ = Normal or ‘1’ = Split.
  • Set 'TX VFO'.
  • TX VFO is a token: ‘VFOA’, ‘VFOB’, ‘VFOC’, ‘currVFO’, ‘VFO’, ‘MEM’, ‘Main’, ‘Sub’, ‘TX’, ‘RX’.
  • I,  set_split_freq 'Tx Frequency'
  • Set 'TX Frequency', in Hz.
  • Frequency may be a floating point or integer value.
  • X,  set_split_mode 'TX Mode' 'TX Passband'
  • Set 'TX Mode' and 'TX Passband'.
  • TX Mode is a token: ‘USB’, ‘LSB’, ‘CW’, ‘CWR’, ‘RTTY’, ‘RTTYR’, ‘AM’, ‘FM’, ‘WFM’, ‘AMS’, ‘PKTLSB’, ‘PKTUSB’, ‘PKTFM’, ‘ECSSUSB’, ‘ECSSLSB’, ‘FA’, ‘SAM’, ‘SAL’, ‘SAH’, ‘DSB’.
  • TX Passband is in Hz as an integer, or ‘0’ for the radio backend default.
  • Note: Passing a ‘?’ (query) as the first argument instead of a TX Mode token will return a space separated list of radio backend supported TX Modes. Use this to determine the supported TX Modes of a given radio backend.
  • C,  set_ctcss_tone 'CTCSS Tone'
  • Set 'CTCSS Tone', in tenths of Hz.
  • t,  get_ptt
  • Get 'PTT' status.
  • Returns PTT as a value in set_ptt above.

EasyComm II

参考旋转器同名协议,此略。

私用协议

该协议是电台制造商制定的私用协议,该协议类型下仅支持通过蓝牙直接连接电台实现,目前支持的电台如下:

  • GUOHE Q900
  • GUOHE PMR-171
  • ICOM IC-705
  • ICOM IC-9700
  • ICOM ID-52
  • YAESU FT-817
  • YAESU FT-818
  • YAESU FT-847
  • YAESU FT-857
  • YAESU FT-897
  • Yaesu FT-991

卫星状态参考

点击此处可查阅AMSAT实时业余卫星状态参考,将跳转到网站 https://www.amsat.org/status/

隐秘调试模式

为了方便校准调试DTrac Rotor,DTrac软件专设隐秘调试模式,适合工程人员使用。调试模式的特定定义按钮,需要在连接DTrac Rotor时有效,其他旋转器仅支持纯命令行模式,并根据旋转器类型自动切换ASCII和HEX输入格式。

红色命令是用来校准并保存DTrac Rotor传感器专用命令,请慎用。

DTrac Rotor 串行命令参考

输入两个整数AZ和EL,以度为单位,用空格分隔,以手动控制旋转器。例如,270 45<Enter>注意:此处的AZ可采用0~180~360或-180~0~180度格式。

  • h-帮助
  • r-重置。显示校准数据,并将旋转器重置到原始位置
  • e-输入磁偏角。例如e11.7<Enter>。偏向东是正值,偏向西是负值
  • c-校准模式。仅当校准数据产生较大误差时才校准操作
  • s-保存磁偏角和校准数据
  • a-中止校准、监控或演示模式
  • d-演示模式。循环跟踪以下AZ/EL点:0/0、90/90、0/180、90/90/0、-90/90、-180/0、-90/90、0/0
  • b-调试模式。显示原始传感器数据:Mx、My、Mz、Gx、Gy、Gz。
  • m-监视器模式。显示当前AZ和EL、设定点AZ和EL、AZ卷绕角度、AZ卷绕状态、AZ和EL误差
  • p-暂停

使用Hamlib中间件

Ham Radio Control Library(简称Hamlib)是一个项目,旨在为程序提供一致的程序编程接口(API),以控制业余无线电台和旋转器。项目地址: https://hamlib.github.io/

DTrac APP for Android V1.0.22开始全面兼容Hamlib协议,下面简单介绍一下,如何使用Hamlib中间件操控旋转器和电台。

Hamlib中间件操作系统可以是Windows、Linux,甚至是树莓派,请选择相应的版本下载安装,下载地址 : https://github.com/Hamlib/Hamlib/releases

安装方法,请参阅官方文档,此略。

命令参考:

连接旋转器,下面的端口以实际填写,其他参数可不变,这里以旋转器EasycommI协议为例:

rotctld -m 201 -r COM1 -s 9600 -T 0.0.0.0 -t 4533 -C timeout=500 -C retry=0 -vvvvv

连接电台,下面的端口以实际填写,其他参数可不变,这里以Yaesu FT-817为例:

rigctld -m 1020 -r COM2 -s 9600 -T 0.0.0.0 -t 4532 -C timeout=500 -C retry=0 -vvvvv

注:APP调用的旋转器地址和电台地址,是hamlib中间件所在系统的实际网络ip,旋转器端口和电台端口为Hamlib命令相应的端口,此例配置如下:

旋转器地址:192.168.4.1 旋转器端口:4533

电台地址:192.168.4.1 电台端口:4532

打开APP设置页,将旋转器类型选择为Hamlib Rotctld,电台类型选择为Hamlib Rigctld,并设置好Hamlib的地址和端口,连接设备即可。

过境预测精度对比

DTrac APP和Look4Sat,用同一个手机,相同GPS设置,并更新最新星历测试对比,预测结果一致。

太阳和月球星历

太阳和月球星历只是试验性的,请不要过度解读。

http://lu7aa.org.ar/text/keps.txt

推荐一个EME软件MoonSked。

dtrac_app.txt · 最后更改: 2024/09/03 07:06 由 BG6UD