跳转至

AI Glasses 程序说明

1. 功能介绍

AI 眼镜是集成 AI 拍照、录像、语音助手、蓝牙耳机、翻译、导航、墨镜、聊天服务等功能的可穿戴设备。随着消费者对轻量化、便携式智能设备的需求不断增加,智能眼镜作为一种可以解放双手的设备,具有很大的市场潜力。且随着 AI 技术的成熟和硬件技术的提升,智能眼镜在社交、娱乐、办公和日常使用中具有广泛的应用前景。未来,智能眼镜将具备更强大的功能和更轻量化的设计,形成更为统一的智能生态系统,为用户提供更智能、更便捷的使用体验。

本 demo 展示了使用 AI 眼镜低功耗方案进行拍照和录像的流程,还介绍了 PC 端工具通过 Wi-Fi 进行预览的方法。

  • 拍照功能
  • 录像功能
  • Wi-Fi 预览功能

关键字说明

  • STR(Suspend to ram)

    STR 是一种节能状态,当系统进入该状态时,SoC 会下电,仅保留 DRAM 自刷新,以显著降低功耗。系统可以通过配置的中断唤醒源快速恢复。STR 不仅加快应用程序的恢复时间,还减少了系统重新上电的能量消耗,提高整体效率。

2. 编译环境说明

Note

板端默认已打包测试程序:/customer/sample_code/bin/prog_ai_glasses_sample。

如果你无需修改测试程序,可跳过此节。

如果你希望自行修改本 demo,请参考以下步骤。

Step1: 完整编译 SDK。

# 1. 下载 SDK

# 2. 设置环境变量
export PATH=/tools/toolchain/gcc-sigmastar-9.1.0-2019.11-x86_64_arm-eabi/bin:/tools/toolchain/gcc-11.1.0-20210608-sigmastar-glibc-x86_64_arm-linux-gnueabihf/bin:$PATH
export CROSS_COMPILE=arm-linux-gnueabihf-

# 3. 完整编译
cd <项目根目录>/project
make ipc_iford.emmc.glibc-11.1.0-ext4fs.ssc029d.256.bga8_lpddr4x_d2_full_defconfig
make clean -j16;
make image -j16;

Step2: 单独编译 demo。

cd <项目根目录>/sdk/verify/sample_code
make clean -j16 && make source/iford/ai_glasses/sample -j16

编译后的生成物路径:<项目根目录>/sdk/verify/sample_code/out/arm/app/prog_ai_glasses_sample

Step3: 拷贝生成物到板端。

# 拷贝到板端目录
/customer/sample_code/bin/

# 在板端执行
chmod 777 /customer/sample_code/bin/prog_ai_glasses_sample

3. 运行环境说明

  • 连接 Sensor:在 SJ5 连接 IMX681 Sensor。
  • 连接电源:在 J1 连接 5V 电源。

    按键1

4. 运行说明

cd /customer/sample_code/bin/
./prog_ai_glasses_sample

demo 运行后 ,SoC 会进入 suspend 状态,SoC 串口不可输入则代表运行成功。继续通过操作 按键 1 或通过 语音唤醒 执行不同功能,请参考下一节。

5. 运行结果说明

5.1 拍照功能

短按(20 毫秒以上,500毫秒以下)扩展板中的 按键 1 进行拍照,拍照完成后系统会自动进入 STR 休眠模式。照片保存在 /customer/ai_glasses 目录。

示例

/customer/ai_glasses/ss_photo_1717672.jpg

5.2 录像功能

长按(500 毫秒以上,2 秒以下)扩展板中的 按键 1 进行录像。录像开始后,再短按(20 毫秒以上,500毫秒以下)一次 按键 1 即可停止录像。录像完成后系统会自动进入 STR 休眠模式。视频保存在 /customer/ai_glasses 目录。

示例

/customer/ai_glasses/ss_movie_1646461.es

5.3 语音唤醒功能

除了通过操作 按键 1,本 demo 还可以通过 语音唤醒 进行拍照或录像功能。在此之前,你需要先连接 DMIC,接线图如下:

5.3.1 语音拍照功能

对着 DMIC 念出唤醒词 take a photo,程序会自动拍照,并存储到 /customer/ai_glasses 目录。

5.3.2 语音录像功能

注意:此功能会自动停止录像,你无需主动操作 按键 1

对着 DMIC 念出唤醒词 record a video,程序会自动录制一个时长为 15 秒的视频,并存储到 /customer/ai_glasses 目录。

5.4 图像防抖功能

本 demo 默认开启 电子图像防抖(Electronic Image Stabilization,EIS) 功能。该功能依赖 惯性测量单元(Inertial Measurement Unit,IMU)(包含陀螺仪与加速度计)获取设备的物理姿态,并据此对图像帧进行裁切与重构。因此在首次测试开始前,请先 参考文档 检查陀螺仪功能正常。

5.4.1 零偏校准

EIS 算法依赖高精度的惯性数据。开始录像后,demo 会先执行 零偏校准 消除陀螺仪的初始误差,校准结果将自动保存至配置文件 /customer/zero_param_file 中。

  1. 静置设备:开启开发板电源后,将设备水平静置于稳定的平面上,避免人为晃动。
  2. 触发校准:运行 demo 并开始录像后,程序会自动进入校准流程。
  3. 确认日志:若校准成功,demo 会在 SoC 端串口输出如下日志:
    (SGS_GLASSES_EIS_ImuCalib 168)exec function pass
    

校准文件的持久化机制

  • 保存路径:校准成功后,零偏数据会持久化保存在 /customer/zero_param_file 中。
  • 复用逻辑:系统在后续启动时会默认读取该文件。只要该文件存在,系统将不再执行自动校准流程。
  • 重置方法:若因校准期间设备晃动导致防抖效果不佳,必须 手动删除 该文件以触发重新校准:
    rm /customer/zero_param_file
    reboot
    

5.4.2 模拟晃动

校准完成后,手持开发板进行步行、转头模拟或随机晃动,以模拟实际使用场景并验证防抖性能。

5.5 Wi-Fi 预览功能

下载地址PC 端预览工具

源码路径sdk/verify/sample_code/source/iford/ai_glasses/tools/SstarAiGlasses

本 demo 提供了 PC 端工具,用于预览 /customer/ai_glasses/ 目录中生成的照片和视频。PC 端和板端通过 Wi-Fi 连接,使用 FTP 协议传输文件,具体操作步骤如下:

Step1:超长按(2 秒以上)扩展板中的 按键 1,为 Wi-Fi 模块上电。如果你连接了 Wi-Fi 端串口,看到如下打印代表上电成功。

#######################################################
#                                            #
#         SIGMASTAR IOT  WIFI                #
#                                            #
#######################################################

...

linux Output 5|5 slow

Step2:PC 端打开 Wi-Fi 并查找名为 AI_GLASSES 的热点,反选 自动连接 后输入密码连接。

热点信息

Wi-Fi 名称:AI_GLASSES_6dc4

Wi-Fi 密码:12345678

PC 端默认 IP 地址:192.168.43.200

说明:Wi-Fi 热点名称格式为 AI_GLASSES_XXXX,其中后四位为设备 MAC 地址,每台设备的 Wi-Fi 名称都会有所差异,以防止名称冲突。

img

Step3: PC 端打开 SstarAiGlasses.exe,点击该工具上的 连接 按钮进行 FTP 连接。

Step4:连接成功后,左侧会列出可下载资源,可单独点击文件下载或下载所有文件(文件保存在 SstarAiGlasses.exe 同目录的 download文件夹中)。

提示

视频文件下载时间稍长,下载完成会有提示。

图片预览效果

视频预览效果

Step5:点击 PC 工具的 断开 按钮,会断开 Wi-Fi 连接,SoC 会自动进入 STR 休眠模式。

6. FAQ

Q1:我无法连接 Wi-Fi,如何解决?

A1: 请参考 WLAN基本功能使用说明 检查您是否通过命令行设置过 Wi-Fi AP 的名称和密码。Wi-Fi 芯片源码会在开机时自动开启一个名为 AI_GLASSES 的 Wi-Fi 热点,这与命令行设置的方式会产生冲突。

解决方案:

  1. 连接 Wi-Fi 串口
  2. 发送 AT 命令:AT+WIFI_SET_MODE STA_MODE
  3. 将 Wi-Fi 设置为 STA 模式
  4. 清除通过命令行设置的 AP 信息
  5. 重新上电设备
  6. 再次运行 demo 尝试连接 Wi-Fi

Q2:如果我购买了多台设备,如何获取当前设备的 Wi-Fi 名称?

A2: 如果你连接了 Wi-Fi 端串口,可以发送 AT 命令 AT+GET_SYS_STATUS

> AT+GET_SYS_STATUS

# 执行结果
=IOT=RF=Ares_AX e641e7a8 2GHZ Nov  3 2025 11:22:46
sstar_iot SDK version 2.1.1
flash map size 4Mbyte
OS  : freeRTOS
wifi    : 11AX 1X1 20M
[AP mode] 
mac :50:7b:91:c9:6d:c4
channel :7 
# ssid 对应的即为 Wi-Fi 名称
ssid:[AI_GLASSES_6dc4]

cpu : 1899756hz
memory total: 243172 byte
memory free: 191836 byte
TCPIP   : LWIP
lwip config: lwipopts.h

如果你连接了 SoC 端串口,可以执行以下命令:

# 注意:执行此命令后请重启设备,否则会影响本 demo 执行流程。
cd customer/sample_code/bin/wifi/
./insmod_wifi.sh
./Sstar_iot_cli status

# 执行结果
cmd_line: status
[Sstar_log]:Sstar_sdio_tx_bh:cmd free(16),used(1)
wifi_mode=AP
wpa_state=ACTIVE
# ssid 对应的即为 Wi-Fi 名称
ssid=AI_GLASSES_6dc4
ip_address=192.168.43.1
mac_address=50:7b:91:c9:6d:c4
ip_mask=255.255.255.0
gate_way=192.168.43.1
OK

Q3:我在验证图像防抖功能时,检查陀螺仪发现错误,如何排查?

A3: 请执行 cat /sys/class/sstar/gyro0/self_check 检查陀螺仪状态。如果出现 unknow device type[2] 日志,说明底板陀螺仪型号为 ICM40607,但驱动默认配置为 ICM42607。

解决方案:

  1. 修改 kernel config,进入 Device DriversSstar SoC platform driversSstar Gyro Driver Support,取消勾选 ICM42607,改为勾选 ICM40607。
  2. 选择以下方式之一应用驱动:

    方式一:快速替换(无需烧录)- 单独编译驱动并在板端替换:

    cd kernel
    make modules -j32
    arm-linux-gnueabihf-sigmastar-11.1.0-strip --strip-debug modules/gyro.ko
    

    然后在板端执行:

    rmmod gyro
    insmod /config/modules/5.10/gyro.ko
    

    方式二:完整烧录 - 重新编译 SDK 并烧录镜像。


如果你想知道更多技术细节,点击了解更多