PX4系统控制台

官网英文原文地址:http://dev.px4.io/advanced-system-console.html

该系统控制台(System Console)允许访问系统底层,调试输出和分析系统启动流程。访问系统控制台最方便的方式是使用Dronecode probe,但是也可以使用FTDI线(译者注:如果没有FTDI线,可用常见的USB转串口(TTL)模块代替,效果是一样的)。

系统控制台(System Console) vs. Shell

有多种shell,但只有一个控制台:系统控制台,它是打印所有引导输出(和引导中自动启动的应用程序)的位置。(可以理解为系统控制台是多个shell中唯一一个打印所有引导输出的shell)

  • 系统控制台(第一shell):硬件串口
  • 其他shells: 连接到USB的Pixhawk(如Mac OS显示为 /dev/tty.usbmodem1)

USB shell:如果只是运行几个简单的命令或测试应用程序,连接到USB shell是足够的。MAVLink可以在此使用,具体情况请查看下文。 只有在需要开机调试或USB用于MAVlink连接地面站GCS的时候,才需要硬件串行控制台。

Snapdragon Flight: Console接线

开发人员工具包里面有一个三个引脚接口板,它可以用于访问控制台。将捆绑的FTDI电缆连接到标头,并将接口板连接到扩展连接器。

Pixracer / Pixhawk v3: Console接线

将6PJST SH 1:1线缆连接到Dronecode Probe,或者将连接线的每个接头按照如下所示连接到FTDI线上:

Pixracer / Pixhawk v3 FTDI
1 +5V (red) N/C
2 UART7 Tx 5 FTDI RX (黄)
3 UART7 Rx 4 FTDI TX (橙)
4 SWDIO N/C
5 SWCLK N/C
6 GND 1 FTDI GND (黑)

Pixhawk v1: Console接线

系统控制台可以通过Dronecode Probe或FTDI线访问。这两个选项将在下面解释。

使用Dronecode Probe连接

Dronecode probe 的6P DF13 1:1线连接到Pixhawk的SERIAL4/5接口。

console

通过FTDI 3.3V 线(USB 转串口模块)连接

如果手头没有Dronecode Probe,也可以使用FTDI 3.3V (Digi-Key: 768-1015-ND) 。

Pixhawk 1/2 FTDI
1 +5V (红) N/C
2 S4 Tx N/C
3 S4 Rx N/C
4 S5 Tx 5 FTDI RX (黄)
5 S5 Rx 4 FTDI TX (橙)
6 GND 1 FTDI GND (黑)

连接器引脚接线如图下图。

connectors

完整的连线如下。

debug

打开控制台

控制台连接接线后,使用您选择的工具的默认串口或者以下描述的默认设置:(大部分新手读者看到这里,可能会困惑的是console 和screen的关系,不理解也没关系,不影响我们设置,仔细按照下面的教程进行设置,可以成功打开控制台)

Linux / Mac OS: Screen

Ubuntu下安装screen (Mac OS 已经默认安装了):

  1. sudo apt-get install screen
  • 串行: Pixhawk v1 / Pixracer 使用 57600 波特率
  • 串行: Snapdragon Flight 使用 115200 波特率

使用 screen 连接到正确的串口,配置为 BAUDRATE baud, 8 data bits, 1 stop bit (注:找到正确串口的方法如下:先在终端下输入 ls /dev/tty* , 拔下串口设备(这里有一点需要注意,Pxhawk的小型USB口是一直插着给板子供电,拔的是上面的Dronecode probe)或者FTDI线(就是usb转串口线),然后重新输入 ls /dev/tty*,观察终端页面发生了什么样的变化,那个变化(少掉)的名称就是系统的串口). 在编者的机器上少了/dev/ttyUSB0,说明串口设备的正确串口是/dev/ttyUSB0)。找到正确的串口后,重新连接串口设备。

常见名称,Linux下是/dev/ttyUSB0 and /dev/ttyACM0 ,Mac OS下是 /dev/tty.usbserial-ABCBD。(可以看到编者的linux系统的串口确实是常见名称/dev/ttyUSB0

  1. screen /dev/ttyXXX BAUDRATE 8N1

注意上面的/dve/ttyXXX BAUDRATE 8N1要替换为自己系统的正确串口和硬件波特率(如果是lunux和pxhawk,加上编者上面的正确串口/dev/ttyUSB0,这条语句应该修改为 screen /dev/ttyUSB0 57600 8N1)。正确输入上述命令后,终端会切换为console,如果没有切换为console或切换后输入没有反应,则插拔一下USB连接线或者串口连接线。重新输入screen /dev/ttyUSB0 57600 8N1,然后输入enter,出现nsh> 说明打开控制台成功。

Windows: PuTTY

下载 PuTTY 并启动它.

然后选择“串行连接”,然后设置端口参数:

  • 57600 baud
  • 8 data bits
  • 1 stop bit

控制台(Console)入门

键入ls查看本地文件系统,使用free查看剩余的可用RAM。当控制板单独供电时,控制台也将显示在系统引导日志。

  1. nsh> ls
  2. nsh> free

对于基于NuttX的系统(Pixhawk,Pixracer,…),NSH控制台也可以通过mavlink访问。它通过串行链路或WiFi(UDP / TCP)来工作。

Make sure that QGC is not running, then start the shell with e.g../Tools/mavlink_shell.py /dev/ttyACM0 (in the Firmware source). Use -h to get a description of all available arguments. You may first have to install the dependencies with sudo pip install pymavlink pyserial.

Snapdragon DSP Console

当您通过USB连接到您的Snapdragon板,你可以访问POSIX上PX4的shell 。与DSP侧(QuRT)的交互可以通过qshellPOSIX应用程序及其QuRT伴随电脑伴侣来开启。

通过USB连接的Snapdragon,打开mini-dm可以看到DSP的输出:

  1. ${HEXAGON_SDK_ROOT}/tools/mini-dm/Linux_Debug/mini-dm

运行主程序:

  1. cd /home/linaro
  2. ./mainapp mainapp.config

您现在可以从linaro的shell以下语法来使用DSP加载的所有的应用程序:

  1. pxh> qshell command [args ...]

例如,要查看可用的QuRT应用程序:

  1. pxh> qshell list_tasks

所执行的命令的输出显示在minidm。