Bootstrap

omi friend实战记录

一、简介

omi friend是国外githab上开源的一个“AI硬件”的制作教程,它的形状是个三角形,属于项链佩戴这类的。可以接入llm进行对话,他有麦克风、扬声器,还有电池。外形好看,功能实用。还有专属的一系列app可以供方便实用

这个博客,会把在制作过程中遇到的一些实际问题进行下记录,有兴趣的小伙伴欢迎,一起讨论

二、最开始的工作

1、安装vscode、并在里面安装nrf connect插件工具+sdk,现在只能安装2.9.0版本的,因为其他的版本都不支持了

视频教程

2、安装完毕后,你的界面是

3、在目录:firmware_v1.0下,我把prj_xiao_ble_sense_devkitv1.conf重命名为prj.conf,然后build

在build的时候可能会遇到一些问题

问题1:

CMake Error at C:/ncs/v2.9.0/zephyr/cmake/modules/boards.cmake:196 (message):
  Error finding board: xiao_ble

  Error message: Traceback (most recent call last):

    File "C:\ncs\v2.9.0\zephyr\scripts\list_boards.py", line 469, in <module>
      dump_v2_boards(args)
    File "C:\ncs\v2.9.0\zephyr\scripts\list_boards.py", line 416, in dump_v2_boards
      boards = find_v2_boards(args)
               ^^^^^^^^^^^^^^^^^^^^
    File "C:\ncs\v2.9.0\zephyr\scripts\list_boards.py", line 341, in find_v2_boards
      b, e = load_v2_boards(args.board, board_yml, systems)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\ncs\v2.9.0\zephyr\scripts\list_boards.py", line 230, in load_v2_boards
      b = yaml.load(f.read(), Loader=SafeLoader)
                    ^^^^^^^^

  UnicodeDecodeError: 'gbk' codec can't decode byte 0xa2 in position 46:
  illegal multibyte sequence

明显看到2个报错:Error finding board: xiao_ble 'gbk' codec can't 实际上应该先解决'gbk' codec can't这个错误,解决后,第一个就自己解决了

如果是不熟悉的人,使劲解决第一个问题,可能会往configure那里加:-DBOARD_ROOT=c:/ncs/v2.9.0/zephyr -DBOARD_DIR=c:/ncs/v2.9.0/zephyr/boards/seeed/xiao_ble 这两个参数,分别加、一起加,都不顶用

解决办法:在目录C:\ncs\v2.9.0\zephyr\scripts,打开list_boards.py,229行改成:with board_yml.open('r', encoding='utf-8') as f:

问题2:

error: NRFX_PDM (defined at C:/ncs/v2.9.0/zephyr/modules/hal_nordic\nrfx/Kconfig:254,
modules\hal_nordic\nrfx/Kconfig:254) is assigned in a configuration file, but is not directly user-
configurable (has no prompt). It gets its value indirectly from other symbols. See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_NRFX_PDM and/or look up NRFX_PDM in the
menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration Values,
and Kconfig - Tips and Best Practices sections of the manual might be helpful too.

这段的原因在于 prj.conf 有1行是:CONFIG_NRFX_PDM=y,把它注释掉就可以

;