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,把它注释掉就可以