一起玩XVF3800麦克风阵列(八)

这一章节我们可以显示熟悉怎么通过树莓派去控制XVF3800了,还记得我们之前下载官方的固件时候,里面提到的Host文件夹吗?我们需要用这个来进行控制,下载那个压缩包的地址如下:

https://www.xmos.com/xvf3800/

解压后把 host_v3.0.0放到自己喜欢的目录下

进入文件夹,其中rpi文件夹里面是用于树莓派控制使用的

执行如下命令,查看host软件使用帮助:

复制代码
sudo chmod +x xvf_host

sudo ./xvf_host --help

结果报错,如下:

这里我们来分析这个报错,输入如下命令:

复制代码
file ./xvf_host
ldd ./xvf_host

我们可以看到,提示它是 32 位 ARM 架构(armhf) 的可执行文件,**缺少 32 位兼容库,因为我们使用的是 64 bit的操作系统。**这里有三个选择了,一个是直接安装 32 位 ARM 兼容库,另外一个是直接源码编译,最后一个是回退版本到32位的树莓派镜像。

这里我们的树莓派内存较大,我们还是使用64bit的,我们直接进行源码编译(根据自己的方法来即可):

bash 复制代码
git clone --recurse-submodules git@github.com:xmos/host_xvf_control.git

GitHub 的 SSH 密钥没有正确设置或者没有添加到你的 GitHub 账户中,导致的问题。这里我们在终端中运行以下命令来生成一个新的 SSH 密钥(替换为你自己的git账户):

bash 复制代码
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

一路直接输入回车键即可:

为了让 SSH 客户端能够使用密钥,你需要将密钥添加到 SSH 代理中:

bash 复制代码
eval "$(ssh-agent -s)"
bash 复制代码
ssh-add ~/.ssh/id_rsa

将公钥添加到 GitHub(复制公钥备用):

bash 复制代码
cat ~/.ssh/id_rsa.pub

登录git账户,点击右上角的头像,选择 Settings; 在左侧导航栏中选择 SSH and GPG keys。点击 New SSH key,在 Title 输入框中设置一个标题(比如 "My SSH Key")。将刚才复制的公钥粘贴到 Key 字段中,点击 Add SSH key。

粘贴刚才的公钥即可

输入下面命令验证是否设置公钥成功,如图所示显示设置成功!

bash 复制代码
ssh -T git@github.com

我们继续git clone Host的源码,尝试编译:

bash 复制代码
git clone --recurse-submodules git@github.com:xmos/host_xvf_control.git

这次我们能够很顺利的下载了整个工程:

进入下载工程我们执行如下命令进行编译(安装cmake再编译,安装):

bash 复制代码
sudo apt install cmake -y
bash 复制代码
sudo apt install libudev-dev
bash 复制代码
sudo apt install libusb-1.0-0
bash 复制代码
sudo apt install libusb-1.0-0-dev
bash 复制代码
cmake -B build && cd build && make

如图所示可以正常编译完成:

此时我们在build文件夹里面可以看到编译出来的 xvf_host 和 xvf_dfu 文件和,usb i2c spi三个动态链接库(so文件结尾,可以理解打包了一个与内核驱动连接的接口,方便调用)

我们来执行这个命令,看看能否正常运行:

bash 复制代码
./xvf_host --help

至此我们host控制程序已经部署到了我们的树莓派5 64bit的系统中,方便我们后续对XVF3800的参数调整和特性研究,这里我们不想每次进入build文件夹中执行,我们仅需要添加环境变量即可实现。

先安装自己喜欢的文本编辑器(我喜欢用gedit),然后编辑.bashrc文件即可。

bash 复制代码
sudo apt install gedit -y
bash 复制代码
sudo gedit .bashrc

进入文本编辑后在最后一行添加如下文本

bash 复制代码
export PATH=$PATH:/home/raspberry/host_xvf_control/build

保存即可,打开新的终端命令窗口可以看到可以直接执行xvf_host命令:

这里我们先检查下与XVF3800的连接是否正常,我们这里以I2C进行通信试试,发现报错:

估计这个工程应该还是有些问题**:编译出来文件的少了 libcommand_map.so 文件!!**

在host源码的 README.rst 文件中有一段是这么描述的:

command map是固件中生产的,不在这个源码中。即要是不编译固件的话就无法得到我们想要的ibcommand_map.so 文件!!

那我们下一章节就先开始编译下生产固件看看有没有这个文件先!

相关推荐
LCG元1 分钟前
基于STM32CubeMX的HAL库串口通信与DMA传输深度优化
stm32·单片机·嵌入式硬件
研究点啥好呢8 分钟前
3月22日GitHub热门项目推荐|网页浏览,何须手动
人工智能·python·开源·github
zl_vslam9 分钟前
SLAM中的非线性优-3D图优化之相对位姿Between Factor-四元数(十二)
人工智能·算法·计算机视觉
知行产研13 分钟前
神宝能源:启动国内首个极寒工况5G+无人驾驶项目
人工智能·自动驾驶
love530love21 分钟前
ComfyUI-3D-Pack:Windows 下手动编译 mesh_inpaint_processor C++ 加速模块
c++·人工智能·windows·python·3d·hunyuan3d·comfyui-3d-pack
uzong26 分钟前
“腾讯QClaw全面开放”,不花 Token 钱、真正体验一把小龙虾的快乐,最低成本全面了解龙虾
人工智能·后端
剑穗挂着新流苏31231 分钟前
111_神经网络的指路明灯:损失函数与反向传播深度解析
人工智能·深度学习·神经网络
ofoxcoding37 分钟前
怎么用 API 搭一个 AI 客服机器人?从零到上线的完整方案
人工智能·ai·机器人
嵌入小生00739 分钟前
硬件 --- GPIO/中断/定时器/蜂鸣器
单片机·嵌入式硬件·定时器·pwm·gpio·蜂鸣器·中断
Jial-(^V^)42 分钟前
使用api-key调用大模型(包括DeepSeek/GLM/OpenAI)
人工智能