本帖最后由 wenfengand 于 2024-9-19 22:30 编辑
一、开箱
盼望着盼望着,快递到达的消息刚到,我就迫不及待地取了回来。下面是每个部件的图片以及组装好的样子。
注意:AiPi-Eyes-R2 只能安装一个喇叭;
二、ubuntu 环境搭建
2.1 编译环境搭建
参考 https://github.com/Ai-Thinker-Open/AiPi-Open-Kits/blob/master/README.md 搭建环境。
拉取代码
git clone https://github.com/Ai-Thinker-Open/AiPi-Open-Kits.git
cd AiPi-Open-Kits
# 默认拉下来的分支是 AiPi-aiThinkerCloud,没有 AiPi-Eyes-Rx 的目录
git checkout master
【可选】更换 .gitmodules 文件如下所示(从 https 协议换成 ssh 协议,可以走本地的 ssh 加速):
[submodule "aithinker_Ai-M6X_SDK"]
path = aithinker_Ai-M6X_SDK
url = [email]git@github.com[/email]:Ai-Thinker-Open/aithinker_Ai-M6X_SDK.git
branch = release/AiPi_Eyes_SDK
然后再拉取子模块
git submodule init
git submodule update
进入 sdk 目录并拉取工具,初始化环境变量
cd aithinker_Ai-M6X_SDK
# 切换到 root 用户,因为后续烧录需要操作 ttyUSB0 设备
sudo su
. ./install.sh
. ./export.sh
2.2 AiPi-Eyes-R2 demo 编译
参考文档 https://github.com/Ai-Thinker-Open/AiPi-Open-Kits/blob/master/AiPi-Eyes-Rx/README.md
Master 代码并不能直接编译,因为代码是支持 AiPi-Eyes-Rx,我们需要修改一些配置来适配 AiPi-Eyes-R2。
修改 app_main.h
#define DEF_USER_ES8388_EN (0)
修改 proj.conf
set(CONFIG_SOLUTION_FUNC_AUDIO_AUADC 1) set(CONFIG_SOLUTION_FUNC_AUDIO_AUDAC 1)
然后可以执行编译命令(不需要 make CHIP=bl616 BOARD=board)
# 以 root 用户执行
make
如下图所示,可以编译成功。
三、固件烧录
3.1 硬件连接与烧录步骤
开发板的 usb 端口目前看只能用来供电,无法直接烧录代码。
自备 usb 转 ttl 模块,连接好 tx、rx、gnd 端口后,按下 【EN】按钮进入烧录代码模式。
如果一切正常,执行如下命令就可以将二进制烧录到开发板中
# 以 root 用户执行
make flash COMX=/dev/ttyUSB0
3.2 串口驱动与盲文显示器的冲突
Ubuntu 22.04 自带 ch340 的驱动,但我插上 usb 转 ttl 模块后,/dev/ttyUSB0 设备并不存在。使用 dmesg 查到相关日志如下:
[7327097.500435] ch341 1-1:1.0: ch341-uart converter detected
[7327097.514464] usb 1-1: ch341-uart converter now attached to ttyUSB0
[7327098.092297] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input19
[7327098.100154] usb 1-1: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[7327098.107355] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[7327098.107394] ch341 1-1:1.0: device disconnected
问题在于盲文显示器与 ch340 驱动冲突,简单地停止 brltty.service
并不能解决问题,需要删除:
sudo systemctl stop brltty.service
sudo systemctl disable brltty.service
sudo apt remove brltty
sudo apt autoremove
# 重新插拔 usb 转串口
ll /dev/ttyUSB0
3.3 ttyUSB0 的权限问题
由于 ubuntu 下需要 root 用户才能操作 ttyUSB0,所以建议先切换到 root,再执行 . ./export.sh, make, make flash 等命令
而且 make 和 make flash 都应该由同一个用户来执行,不能以普通用户执行 make,又以 root 用户执行 make flash,会导致一些环境变量不存在、文件权限冲突
也可以将当前用户加入到 dialout 用户组,但需要重启设备才行
sudo usermod -aG dialout ubuntu
参考:linux下非root用户获得/dev/ttyUSB0的权限_linux访问dev设备权限-CSDN博客