板载显示器:修订间差异

来自无人智胜
跳转到导航 跳转到搜索
Root留言 | 贡献
无编辑摘要
Root留言 | 贡献
无编辑摘要
第23行: 第23行:
* SH1106
* SH1106


== 连接与配置 ==
== 概述 ==
== 硬件连接 ==OLED 模块的 I²C 接口通常包含以下引脚:'''VCC''':接飞控的 5V 或 3.3V 电源(需匹配模块电压)'''GND''':接地'''SDA''':接飞控的 I²C 数据线(如 UART3/I2C1 接口的 SDA 引脚)'''SCL''':接飞控的 I²C 时钟线(如 UART3/I2C1 接口的 SCL 引脚)注意:若飞控逻辑电平为 3.3V 而 OLED 为 5V,需使用电平转换模块。== 软件配置 ===== PX4 固件 ===默认情况下,部分飞控的 I²C 接口(如 UART3)可能被初始化为 GPS1 功能,但其 I²C 总线通常已激活。连接 OLED 后重启飞控,常见驱动(如 SSD1306)可能自动识别并显示基础信息。若无法显示,通过地面站 QGroundControl 配置参数:搜索参数 SENS_EN_开头的传感器(例如 SENS_EN_SDLIST),确保其值为 Enabled。搜索关键词 "OLED",检查相关显示设备参数是否启用。部分版本可能需要额外设置 I²C 总线速率或地址(默认地址常为 0x78 或 0x7A)。=== ArduPilot 固件 ===在地面站 Mission Planner 的参数列表中:搜索 SERIAL3_PROTOCOL参数(假设 OLED 接在 UART3 接口),将其值设为 -1以禁用串口协议,启用 I²C 功能。搜索 DISPLAY_OPTIONS等以 "DISPLAY" 开头的参数,按需启用显示内容(如电池电压、姿态角)。重启飞控使配置生效。
飞控系统(如PX4或ArduPilot)可通过I²C接口连接外部OLED显示屏,用于实时显示飞行状态、传感器数据等信息。配置过程涉及硬件连接和软件参数设置两部分[1,5](@ref)。
 
== 硬件设计 ==
=== 接口定义 ===
OLED模块的I²C接口通常包含以下引脚[5](@ref):
* '''VCC''':接飞控的5V或3.3V电源(需严格匹配模块工作电压)
* '''GND''':接地
* '''SDA''':接飞控的I²C数据线(例如UART3 & I2C1接口的SDA引脚)
* '''SCL''':接飞控的I²C时钟线(例如UART3 & I2C1接口的SCL引脚)
 
'''注意''':若飞控逻辑电平为3.3V而OLED模块为5V逻辑电平时,需使用电平转换模块,避免损坏飞控MCU[5](@ref)。
 
=== 地址识别 ===
OLED的器件地址由硬件决定,通常为0x3C或0x3D(7位地址格式),或0x78/0x7A(8位地址格式)。具体地址需查阅模块手册,或通过I2C扫描工具确定。在驱动中,控制命令通常使用0x00前缀,数据使用0x40前缀[3,6](@ref)。
 
== 软件配置 ==
=== PX4固件 ===
1.  '''启用I2C总线''':部分飞控的I²C接口(如标有UART3 & I2C1的接口)可能默认初始化为其他功能(如GPS1),但其I²C总线通常已激活[1](@ref)。
2.  '''基本检测''':连接OLED后重启飞控,若OLED屏幕被识别,可能会显示基础信息。
3.  '''参数配置(通过QGroundControl)''':
    * 搜索以`SENS_EN_`开头的参数(例如`SENS_EN_SDLIST`),确保其值为`Enabled`[1](@ref)。
    * 搜索"OLED"关键词,检查相关显示设备参数并启用。
    * 部分版本可能需要额外设置I²C总线速率或从设备地址(常见的OLED地址为0x78)[6](@ref)。
4.  '''重启飞控'''使配置生效。
 
=== ArduPilot固件 ===
1.  '''参数配置(通过Mission Planner)''':
    * 搜索`SERIALx_PROTOCOL`参数(例如,若OLED接在UART3接口,则搜索`SERIAL3_PROTOCOL`),将其值设置为`-1`,以禁用该端口的串口协议,从而启用I²C功能[1](@ref)。
    * 搜索以`DISPLAY`开头的参数(例如`DISPLAY_OPTIONS`),根据需要启用希望显示的内容(如电池电压、姿态角等)。
2.  '''重启飞控'''使配置生效。
 
== 驱动与显示函数示例 ==
以下为基于STM32 HAL库的OLED基本驱动函数示例,展示了命令/数据写入、初始化、清屏等核心操作[3,6](@ref):

2025年10月24日 (五) 14:25的版本

飞控系统(如 PX4 或 ArduPilot)可通过 I²C 接口连接外部 OLED 显示屏,用于实时显示飞行状态、传感器数据等信息。配置过程涉及硬件连接和软件参数设置两部分。

目的与功能

板载显示屏的主要目的是在地面、起飞前,向用户显示少量但至关重要的飞行器信息。可显示的信息包括:

  • 解锁失败消息
  • 当前飞行模式
  • 电池电压
  • GPS 锁定状态和卫星数量
  • 预解锁检查通过/失败状态
  • EKF 状态




支持的硬件

兼容两种类型的 OLED 显示屏:

  • SSD1306
  • SH1106

概述

飞控系统(如PX4或ArduPilot)可通过I²C接口连接外部OLED显示屏,用于实时显示飞行状态、传感器数据等信息。配置过程涉及硬件连接和软件参数设置两部分[1,5](@ref)。

硬件设计

接口定义

OLED模块的I²C接口通常包含以下引脚[5](@ref):

  • VCC:接飞控的5V或3.3V电源(需严格匹配模块工作电压)
  • GND:接地
  • SDA:接飞控的I²C数据线(例如UART3 & I2C1接口的SDA引脚)
  • SCL:接飞控的I²C时钟线(例如UART3 & I2C1接口的SCL引脚)

注意:若飞控逻辑电平为3.3V而OLED模块为5V逻辑电平时,需使用电平转换模块,避免损坏飞控MCU[5](@ref)。

地址识别

OLED的器件地址由硬件决定,通常为0x3C或0x3D(7位地址格式),或0x78/0x7A(8位地址格式)。具体地址需查阅模块手册,或通过I2C扫描工具确定。在驱动中,控制命令通常使用0x00前缀,数据使用0x40前缀[3,6](@ref)。

软件配置

PX4固件

1. 启用I2C总线:部分飞控的I²C接口(如标有UART3 & I2C1的接口)可能默认初始化为其他功能(如GPS1),但其I²C总线通常已激活[1](@ref)。 2. 基本检测:连接OLED后重启飞控,若OLED屏幕被识别,可能会显示基础信息。 3. 参数配置(通过QGroundControl)

   * 搜索以`SENS_EN_`开头的参数(例如`SENS_EN_SDLIST`),确保其值为`Enabled`[1](@ref)。
   * 搜索"OLED"关键词,检查相关显示设备参数并启用。
   * 部分版本可能需要额外设置I²C总线速率或从设备地址(常见的OLED地址为0x78)[6](@ref)。

4. 重启飞控使配置生效。

ArduPilot固件

1. 参数配置(通过Mission Planner)

   * 搜索`SERIALx_PROTOCOL`参数(例如,若OLED接在UART3接口,则搜索`SERIAL3_PROTOCOL`),将其值设置为`-1`,以禁用该端口的串口协议,从而启用I²C功能[1](@ref)。
   * 搜索以`DISPLAY`开头的参数(例如`DISPLAY_OPTIONS`),根据需要启用希望显示的内容(如电池电压、姿态角等)。

2. 重启飞控使配置生效。

驱动与显示函数示例

以下为基于STM32 HAL库的OLED基本驱动函数示例,展示了命令/数据写入、初始化、清屏等核心操作[3,6](@ref):