摘要:可进行二次开发,或者作为课设和毕设的参考仅复刻的话,无需编译Linux系统,直接使用提供的固件即可,大大简化操作(但需要会基本的Linux命令)不想复刻这个开发板,重新编译,软件可以在任何Linux设备跑,也可以在你的ubuntu虚拟机跑仿真如果深入学习,可以
这是一个AI桌面机器人!
它十分硬核!
它功能超多!
1.14大功能盘点
首先,它可以是一个AI小玩具!
①可以陪你聊天解闷
AI聊天采用websocket与服务器(你的电脑),进行通信
②AI相机
③意图识别
这个是用谷歌的FastText模型进行文字的分类任务,还是深度学习那一套
④视频推流
它可以是一个旅游搭子!
⑤翻译它甚至还能成为旅游搭子!
还是一个有趣的桌面助手!
⑥LVGL菜单
可以自行按照仓库代码的范式自行添加内容
小编OS:小编在看到这里的时候,心里就有高能预警了!!好像很牛的样子?!很好玩的样子?!爱了爱了……
⑦画画嘿嘿,用来玩你画我猜
⑧小电视摸鱼搭子
小电视功能暂时就只是一个ffmpeg的一个演示
⑨木鱼摸鱼了之后敲几下木鱼,依然是一枚优秀的打工人
游戏参考延续了OV-Watch智能手表的一些游戏的逻辑
⑩看天气
⑪中国日历
⑫计算器
⑬设置
支持IP定位、亮度/音量调节、网络时间、更新时间等设置
功能终于列举完了?!
漏漏漏!还没结束!
⑭开发板:除此之外,它还是一个基于RV1106的小巧的Linux开发板~主打一个玩转linux~进阶linux~
2.4大亮点
可进行二次开发,或者作为课设和毕设的参考仅复刻的话,无需编译Linux系统,直接使用提供的固件即可,大大简化操作(但需要会基本的Linux命令)不想复刻这个开发板,重新编译,软件可以在任何Linux设备跑,也可以在你的ubuntu虚拟机跑仿真如果深入学习,可以掌握以下知识:好滴!了解了项目的基本功能亮点,咱就,上点干货?
它具体是怎么设计出来的呢?
二、硬件设计方案项目由两块PCB板组成。
1.Core
Diagram
GPIO-assignment
Main
Power
USB
Storage
Audio
Camera
Wifi
LCD&TP
PCB图
2.Drive
原理图
PCB图
硬件参数
一些小Tips:
1.如果不想做驱动板不想打外壳,直接打这个RV1106核心板,在核心板上做开发也是可以的。
2.注意,硬件例如CSI摄像头等地方,需要差分走线,详见PCB的网络差分对。
3.Echo-Mate AI桌面机器人的“腿”,也就是电机驱动板,使用TC118S驱动减速电机,逻辑比较简单,这里也不再过多赘述。
三、软件设计1.软件框架
Echo-Mate的软件框架如下图所示。
UI层中,创建APP的逻辑是?
进入页面后,开启一个线程运行APP,主线程还是UI线程,详细内容见仓库代码,例如:
// 创建并初始化Application对象void* create_aichat_app(const char* address, int port, const char* token, const char* deviceId, const char* aliyun_api_key, int protocolVersion, int sample_rate, int channels, int frame_duration) {auto* app = new Application(std::string(address), port, std::string(token), std::string(deviceId), std::string(aliyun_api_key), protocolVersion, sample_rate, channels, frame_duration);return static_cast(app);}int start_ai_chat(const char* address, int port, const char* token, const char* deviceId, const char* aliyun_api_key, int protocolVersion, int sample_rate, int channels, int frame_duration) {.....省略此处.....pthread_mutex_lock(&running_mutex);// 创建应用app_instance = create_aichat_app(address, port, token, deviceId, aliyun_api_key, protocolVersion, sample_rate, channels, frame_duration);pthread_mutex_unlock(&running_mutex);.....省略此处.....return 0;}业务层,就是这些APP的实际实现的具体功能了,例如UI中AI Chat聊天APP的功能,或者AI相机,yolov5的推理,这些运行的结果可以在UI层进行显示,即UI层与具体业务层进行交互。
这里只对大概框架进行说明,具体的代码细节需要在仓库中自行学习。仓库中都写有README,有详细的如何编译,如何烧录,请仔细看!
2.目录结构说明
DeskBot_demo/├── bin/ # 可执行文件├── build/ # build缓存├── common/ # 通用层│ ├── sys_manager/ # 开发板硬件对应的管理│ └── xxx_manager/ # xxx对应的管理├── conf/ # 系统设置├── gui_app/ # UI层的软件│ ├── common/ # UI层扩展lib│ ├── font/ # UI字体│ ├── images/ # UI图片│ ├── pages/ # UI层主要pages│ └── ui.c/h # ├── lvgl/ # lvgl核心组件├── utils # 其他├── lv_conf.h # lvgl设置└── main.c3.AI Chat聊天原理介绍
AI Chat的原理图如下图所示。
为什么不参考小爱同学使用bert进行分类任务?
是因为bert要针对特定任务做微调
我电脑有点带不动>.
注意:这些模型都是在你的电脑运行的,相当于你的电脑作为服务器。
开发板无法实时进行语言识别怎么破?
由于RV1106开发板是单核A7的,算力不是很够,没有办法在本地运行sherpa-onnx或sherpa-ncnn,会导致无法实时的进行语音识别。
这里将电脑端(或者你有其他好的做服务器也行)作为服务器Server,开发板作为Client。
具体的websocket的数据传输协议详见手册或者github中的AIchat_demo说明。为了照顾没有GPU的同学,Server中的生成式模型,CosyVoice和DeepSeek,调用的API,因为没有卡想要效果好就很慢。当然有GPU的同学有卡的同学,可以完全实现部署到电脑本地~
AI Chat的具体的工作流程如下图所示:
意图识别想要增加其他意图?例如跳舞等
可以自行收集数据,按照Server文件夹中的数据格式数据,进行训练即可得到自己的模型。
注意,训练前请先试用jieba分词,已经写好了cutdata.py,自行按照规范操作即可。
4.YOLO Camera原理
这里的YOLO相机为了方便直接使用的nihui大佬的opencv-Mobile。
使用 opencv-mobile 捕获摄像头图像的方式较为方便,但是失去了 VI 组件和 VPSS 组件的硬件加速,在性能上有明显损失,如果想要帧率更高,可以基于VI,VPSS进行图像捕获。
我已经编译好了适配Echo开发板的opencv-mobile包(与luckfox-pico相同,只是白名单需要改一下然后重新编译),可以直接拿去使用,这里不再赘述,东西太多了。
YOLO相机具体实现的流程如下图:
参考Luckfox-pico例程
1.所需物料
Echo核心板(BOM参见原理图,注意WIFI模块是RTL8723BS模块)3D打印外壳(去立创3D打印即可,注意主动轮和从动轮,都要打两份)焊接工具,焊接软线等螺丝螺母若干, 马达,双面胶等,详见附件配件表pdf2.开发环境
windows电脑一台USB连接线SD卡, 读卡器usb转ttl串口模块RK瑞芯微驱动助手RK瑞芯微烧录工具MobaXterm深入学习需要的开发环境如下:
Ubuntu22.04python环境(python=3.10)以及带脑子,会查资料~3.固件烧录
附件中上传了SD卡上的buildroot固件,由于只能上传50M的包,所以将多个part01-03全选然后解压缩即可。
以下是简易的烧录示意:
首先格式化SD卡(可以使用SD Card formatter)使用RK瑞芯微烧录工具进行烧录烧好插上开发板即可注意,使用SD卡作为存储介质启动,需要保证NAND FLASH为空内容!
NAND FLASH的烧录和擦除方法可以详见手册。
4.程序执行
首先解压附件中的bin.rar把bin文件夹传到开发板中vi更改system_para.conf需要更改AI_Chat_Server地址为同网络下运行server的电脑地址,可通过ipconfig命令查看,开发板和电脑互ping一下就知道了更改高德的api_key,用于访问天气更改阿里云百炼的api_key。这两个key都需要注册一下,应该都是个人用户免费的。想要正常访问天气等?
连接WIFI即可,连接WIFI的指令可以看手册,或网上搜~
然后再进入bin文件夹内,执行main即可,注意必须进入bin文件夹中执行,因为有各种文件依赖:
cd ./binchmod +x ./main./main想要正常运行聊天功能?
需要在电脑上运行Server服务,如果有python环境的可以参考仓库按照Server环境搭建与运行搭建环境然后运行即可。ctrl+C可中断程序。
python ./main.py --access_token="123456"不想搭建环境不想用python?
这里打包好了.exe可执行文件(有点大2个G),直接运行即可,运行方式如下:
解压完AiChatServer-Win-exe-V1.0.rar, 进入main文件夹,然后在这个文件中进入cmd,运行即可。ctrl+双击C可中断程序。
.\main.exe --access_token="123456"开源网址:https://oshwhub.com/no_chicken/ai-desktop-robot-echo
来源:嘉立创EDA