一.树莓派5XIAOZHI演示
这里我先经行树莓派5XIAOZHI的演示,最后讲述代码的移植。
视频演示链接:树莓派5小智_哔哩哔哩_bilibili
二.树莓派5XIAOZHI移植
1.下载韦东山老师的源码
#韦老师的源码
https://github.com/100askTeam/xiaozhi-linux.git
#gitee
https://gitee.com/cool-ditch-repair/xiaozhi-linux.git
---
git clone https://gitee.com/cool-ditch-repair/xiaozhi-linux.git
2.编译gui
#安装相应的库
sudo apt-get update
sudo apt-get install cmake
sudo apt-get install libboost-all-dev
sudo apt-get install libasound2-dev
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libopus-dev
sudo apt install libspeexdsp-dev
sudo apt install libsdl2-dev
sudo apt install -y libssl-dev
#修改build.sh
rm -rf build
mkdir -p build
cd build/
#cmake -DCMAKE_TOOLCHAIN_FILE="../toolchain.cmake" ..
#cmake ..
make -j32
wait
cd ../
cp bin/main bin/lvgl_xiaozhi
echo "get app bin/lvgl_xiaozhi"
#报错缺少库文件
sudo apt-get install libfreetype6-dev
#修改CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(lvgl)
set(CMAKE_C_STANDARD 99)#C99 # lvgl officially support C99 and above
set(CMAKE_CXX_STANDARD 17)#C17
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Freetype REQUIRED)
# 添加以下两行
include_directories(${FREETYPE_INCLUDE_DIRS})
include_directories(/usr/include/freetype2) # 手动指定路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
add_subdirectory(lv_100ask_xz_ai)
add_subdirectory(lvgl)
target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR})
#add_subdirectory(lv_100ask_xz_ai)
add_executable(main main.c mouse_cursor_icon.c)
include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake)
include_directories(${Libdrm_INCLUDE_DIRS})
find_package(SDL2)
find_package(SDL2_image)
include_directories(${CMAKE_SOURCE_DIR}/lv_100ask_xz_ai ${SDL2_INCLUDE_DIRS}
${SDL2_IMAGE_INCLUDE_DIRS})
target_link_libraries(main lv_100ask_xz_ai lvgl lvgl::examples lvgl::demos
lvgl::thorvg ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} ${Libdrm_LIBRARIES} m pthread freetype png)
add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/lv_xiaozhiui DEPENDS main)
#修改 lv_conf.h
To use SDL2 support, adjust lv_conf.h as follows:
#define LV_USE_LINUX_FBDEV 0
#define LV_USE_LINUX_DRM 0
#define LV_USE_SDL 1
到这里就gui的编译就完成了,还需要准备一个字体了3个图片,修改一下路径就OK了
图片下载
修改图片和字体路径
3.编译control_center
#安装websocket库
#这个不行可以采用下面那个
git clone https://github.com/zaphoyd/websocketpp.git
git clone https://gitee.com/tonyhc/websocketpp.git
cd websocketpp/
mkdir build
cd build
cmake ..
sudo make
sudo make install
4.编译sound_app
这里直接make就好,前面已经把缺失的库全部安装了。
5.测试
先在运行sound_app,control_center,在运行lvgl_xiaozhi(路径在gui/bin中),就会看到界面显示一个6位数的验证码
打开网址,输入显示的验证码,激活设备即可。
三.结语
最后感谢虾哥和韦东山老师团队的开源精神。